@matheusbsbs / matheus-bagliano / commits / 1a3d834f06
Fork 0

git-rev-list.txt: Clarify the use of multiple revision arguments

If one thinks of a revision as the set of commits which can be reached from the rev, and of ^rev as the complement, then multiple arguments to git rev-list can be neither understood as the intersection nor the union of the individual sets. But set language is the natural as well as logical language in which to phrase this. So, add a paragraph which explains multiple arguments using set language. Suggested-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Aug 5, 2009 at 09:42 UTC 1a3d834f06260e51396a6047ec746fc7895de316
1 file changed +14 -8
Documentation/git-rev-list.txt
+14 -8
@@ -51,20 +51,26 @@ SYNOPSIS
51 DESCRIPTION
52 -----------
53
54 -Lists commit objects in reverse chronological order starting at the
55 -given commit(s), taking ancestry relationship into account. This is
56 -useful to produce human-readable log output.
54 +List commits that are reachable by following the `parent` links from the
55 +given commit(s), but exclude commits that are reachable from the one(s)
56 +given with a '{caret}' in front of them. The output is given in reverse
57 +chronological order by default.
58
58 -Commits which are stated with a preceding '{caret}' cause listing to
59 -stop at that point. Their parents are implied. Thus the following
60 -command:
59 +You can think of this as a set operation. Commits given on the command
60 +line form a set of commits that are reachable from any of them, and then
61 +commits reachable from any of the ones given with '{caret}' in front are
62 +subtracted from that set. The remaining commits are what comes out in the
63 +command's output. Various other options and paths parameters can be used
64 +to further limit the result.
65 +
66 +Thus, the following command:
67
68 -----------------------------------------------------------------------
69 $ git rev-list foo bar ^baz
70 -----------------------------------------------------------------------
71
66 -means "list all the commits which are included in 'foo' and 'bar', but
67 -not in 'baz'".
72 +means "list all the commits which are reachable from 'foo' or 'bar', but
73 +not from 'baz'".
74
75 A special notation "'<commit1>'..'<commit2>'" can be used as a
76 short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of