@matheusbsbs / matheus-bagliano / commits / fdcf39e59b
Fork 0

Include rev-list options in git-log manpage.

Replace the "This manual page describes only the most frequently used options." text with the list of rev-list options in git-log manpage. (The git-diff-tree options are already included.) Move these options to a separate file and include it from both git-rev-list.txt and git-log.txt. Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Miklos Vajna committed Jan 18, 2008 at 23:58 UTC fdcf39e59b98536d2d65b26a59925dc1dea421d4
3 files changed +365 -376
Documentation/git-log.txt
+2 -19
@@ -19,14 +19,10 @@ command to control what is shown and how, and options applicable to
19 the linkgit:git-diff-tree[1] commands to control how the changes
20 each commit introduces are shown.
21
22 -This manual page describes only the most frequently used options.
23 -
22
23 OPTIONS
24 -------
25
28 -include::pretty-options.txt[]
29 -
26 :git-log: 1
27 include::diff-options.txt[]
28
@@ -41,21 +37,6 @@ include::diff-options.txt[]
37 and <until>, see "SPECIFYING REVISIONS" section in
38 linkgit:git-rev-parse[1].
39
44 ---first-parent::
45 - Follow only the first parent commit upon seeing a merge
46 - commit. This option can give a better overview when
47 - viewing the evolution of a particular topic branch,
48 - because merges into a topic branch tend to be only about
49 - adjusting to updated upstream from time to time, and
50 - this option allows you to ignore the individual commits
51 - brought in to your history by such a merge.
52 -
53 --g, \--walk-reflogs::
54 - Show commits as they were recorded in the reflog. The log contains
55 - a record about how the tip of a reference was changed.
56 - Cannot be combined with --reverse.
57 - See also linkgit:git-reflog[1].
58 -
40 --decorate::
41 Print out the ref names of any commits that are shown.
42
@@ -80,6 +61,8 @@ include::diff-options.txt[]
61 Show only commits that affect the specified paths.
62
63
64 +include::rev-list-options.txt[]
65 +
66 include::pretty-formats.txt[]
67
68 include::diff-generate-patch.txt[]
Documentation/git-rev-list.txt
+2 -357
@@ -88,363 +88,8 @@ linkgit:git-repack[1].
88 OPTIONS
89 -------
90
91 -Commit Formatting
92 -~~~~~~~~~~~~~~~~~
93 -
94 -Using these options, linkgit:git-rev-list[1] will act similar to the
95 -more specialized family of commit log tools: linkgit:git-log[1],
96 -linkgit:git-show[1], and linkgit:git-whatchanged[1]
97 -
98 -include::pretty-options.txt[]
99 -
100 ---relative-date::
101 -
102 - Synonym for `--date=relative`.
103 -
104 ---date={relative,local,default,iso,rfc}::
105 -
106 - Only takes effect for dates shown in human-readable format, such
107 - as when using "--pretty".
108 -+
109 -`--date=relative` shows dates relative to the current time,
110 -e.g. "2 hours ago".
111 -+
112 -`--date=local` shows timestamps in user's local timezone.
113 -+
114 -`--date=iso` (or `--date=iso8601`) shows timestamps in ISO 8601 format.
115 -+
116 -`--date=rfc` (or `--date=rfc2822`) shows timestamps in RFC 2822
117 -format, often found in E-mail messages.
118 -+
119 -`--date=short` shows only date but not time, in `YYYY-MM-DD` format.
120 -+
121 -`--date=default` shows timestamps in the original timezone
122 -(either committer's or author's).
123 -
124 ---header::
125 -
126 - Print the contents of the commit in raw-format; each record is
127 - separated with a NUL character.
128 -
129 ---parents::
130 -
131 - Print the parents of the commit.
132 -
133 ---timestamp::
134 - Print the raw commit timestamp.
135 -
136 ---left-right::
137 -
138 - Mark which side of a symmetric diff a commit is reachable from.
139 - Commits from the left side are prefixed with `<` and those from
140 - the right with `>`. If combined with `--boundary`, those
141 - commits are prefixed with `-`.
142 -+
143 -For example, if you have this topology:
144 -+
145 ------------------------------------------------------------------------
146 - y---b---b branch B
147 - / \ /
148 - / .
149 - / / \
150 - o---x---a---a branch A
151 ------------------------------------------------------------------------
152 -+
153 -you would get an output line this:
154 -+
155 ------------------------------------------------------------------------
156 - $ git rev-list --left-right --boundary --pretty=oneline A...B
157 -
158 - >bbbbbbb... 3rd on b
159 - >bbbbbbb... 2nd on b
160 - <aaaaaaa... 3rd on a
161 - <aaaaaaa... 2nd on a
162 - -yyyyyyy... 1st on b
163 - -xxxxxxx... 1st on a
164 ------------------------------------------------------------------------
165 -
166 -Diff Formatting
167 -~~~~~~~~~~~~~~~
168 -
169 -Below are listed options that control the formatting of diff output.
170 -Some of them are specific to linkgit:git-rev-list[1], however other diff
171 -options may be given. See linkgit:git-diff-files[1] for more options.
172 -
173 --c::
174 -
175 - This flag changes the way a merge commit is displayed. It shows
176 - the differences from each of the parents to the merge result
177 - simultaneously instead of showing pairwise diff between a parent
178 - and the result one at a time. Furthermore, it lists only files
179 - which were modified from all parents.
180 -
181 ---cc::
182 -
183 - This flag implies the '-c' options and further compresses the
184 - patch output by omitting hunks that show differences from only
185 - one parent, or show the same change from all but one parent for
186 - an Octopus merge.
187 -
188 --r::
189 -
190 - Show recursive diffs.
191 -
192 --t::
193 -
194 - Show the tree objects in the diff output. This implies '-r'.
195 -
196 -Commit Limiting
197 -~~~~~~~~~~~~~~~
198 -
199 -Besides specifying a range of commits that should be listed using the
200 -special notations explained in the description, additional commit
201 -limiting may be applied.
202 -
203 ---
204 -
205 --n 'number', --max-count='number'::
206 -
207 - Limit the number of commits output.
208 -
209 ---skip='number'::
210 -
211 - Skip 'number' commits before starting to show the commit output.
212 -
213 ---since='date', --after='date'::
214 -
215 - Show commits more recent than a specific date.
216 -
217 ---until='date', --before='date'::
218 -
219 - Show commits older than a specific date.
220 -
221 ---max-age='timestamp', --min-age='timestamp'::
222 -
223 - Limit the commits output to specified time range.
224 -
225 ---author='pattern', --committer='pattern'::
226 -
227 - Limit the commits output to ones with author/committer
228 - header lines that match the specified pattern (regular expression).
229 -
230 ---grep='pattern'::
231 -
232 - Limit the commits output to ones with log message that
233 - matches the specified pattern (regular expression).
234 -
235 --i, --regexp-ignore-case::
236 -
237 - Match the regexp limiting patterns without regard to letters case.
238 -
239 --E, --extended-regexp::
240 -
241 - Consider the limiting patterns to be extended regular expressions
242 - instead of the default basic regular expressions.
243 -
244 ---remove-empty::
245 -
246 - Stop when a given path disappears from the tree.
247 -
248 ---full-history::
249 -
250 - Show also parts of history irrelevant to current state of a given
251 - path. This turns off history simplification, which removed merges
252 - which didn't change anything at all at some child. It will still actually
253 - simplify away merges that didn't change anything at all into either
254 - child.
255 -
256 ---no-merges::
257 -
258 - Do not print commits with more than one parent.
259 -
260 ---first-parent::
261 - Follow only the first parent commit upon seeing a merge
262 - commit. This option can give a better overview when
263 - viewing the evolution of a particular topic branch,
264 - because merges into a topic branch tend to be only about
265 - adjusting to updated upstream from time to time, and
266 - this option allows you to ignore the individual commits
267 - brought in to your history by such a merge.
268 -
269 ---not::
270 -
271 - Reverses the meaning of the '{caret}' prefix (or lack thereof)
272 - for all following revision specifiers, up to the next '--not'.
273 -
274 ---all::
275 -
276 - Pretend as if all the refs in `$GIT_DIR/refs/` are listed on the
277 - command line as '<commit>'.
278 -
279 ---stdin::
280 -
281 - In addition to the '<commit>' listed on the command
282 - line, read them from the standard input.
283 -
284 ---quiet::
285 -
286 - Don't print anything to standard output. This form of
287 - git-rev-list is primarily meant to allow the caller to
288 - test the exit status to see if a range of objects is fully
289 - connected (or not). It is faster than redirecting stdout
290 - to /dev/null as the output does not have to be formatted.
291 -
292 ---cherry-pick::
293 -
294 - Omit any commit that introduces the same change as
295 - another commit on the "other side" when the set of
296 - commits are limited with symmetric difference.
297 -+
298 -For example, if you have two branches, `A` and `B`, a usual way
299 -to list all commits on only one side of them is with
300 -`--left-right`, like the example above in the description of
301 -that option. It however shows the commits that were cherry-picked
302 -from the other branch (for example, "3rd on b" may be cherry-picked
303 -from branch A). With this option, such pairs of commits are
304 -excluded from the output.
305 -
306 --g, --walk-reflogs::
307 -
308 - Instead of walking the commit ancestry chain, walk
309 - reflog entries from the most recent one to older ones.
310 - When this option is used you cannot specify commits to
311 - exclude (that is, '{caret}commit', 'commit1..commit2',
312 - nor 'commit1...commit2' notations cannot be used).
313 -+
314 -With '\--pretty' format other than oneline (for obvious reasons),
315 -this causes the output to have two extra lines of information
316 -taken from the reflog. By default, 'commit@\{Nth}' notation is
317 -used in the output. When the starting commit is specified as
318 -'commit@{now}', output also uses 'commit@\{timestamp}' notation
319 -instead. Under '\--pretty=oneline', the commit message is
320 -prefixed with this information on the same line.
321 -
322 -Cannot be combined with '\--reverse'.
323 -
324 ---merge::
325 -
326 - After a failed merge, show refs that touch files having a
327 - conflict and don't exist on all heads to merge.
328 -
329 ---boundary::
330 -
331 - Output uninteresting commits at the boundary, which are usually
332 - not shown.
333 -
334 ---dense, --sparse::
335 -
336 -When optional paths are given, the default behaviour ('--dense') is to
337 -only output commits that changes at least one of them, and also ignore
338 -merges that do not touch the given paths.
339 -
340 -Use the '--sparse' flag to makes the command output all eligible commits
341 -(still subject to count and age limitation), but apply merge
342 -simplification nevertheless.
343 -
344 ---bisect::
345 -
346 -Limit output to the one commit object which is roughly halfway between
347 -the included and excluded commits. Thus, if
348 -
349 ------------------------------------------------------------------------
350 - $ git-rev-list --bisect foo ^bar ^baz
351 ------------------------------------------------------------------------
352 -
353 -outputs 'midpoint', the output of the two commands
354 -
355 ------------------------------------------------------------------------
356 - $ git-rev-list foo ^midpoint
357 - $ git-rev-list midpoint ^bar ^baz
358 ------------------------------------------------------------------------
359 -
360 -would be of roughly the same length. Finding the change which
361 -introduces a regression is thus reduced to a binary search: repeatedly
362 -generate and test new 'midpoint's until the commit chain is of length
363 -one.
364 -
365 ---bisect-vars::
366 -
367 -This calculates the same as `--bisect`, but outputs text ready
368 -to be eval'ed by the shell. These lines will assign the name of
369 -the midpoint revision to the variable `bisect_rev`, and the
370 -expected number of commits to be tested after `bisect_rev` is
371 -tested to `bisect_nr`, the expected number of commits to be
372 -tested if `bisect_rev` turns out to be good to `bisect_good`,
373 -the expected number of commits to be tested if `bisect_rev`
374 -turns out to be bad to `bisect_bad`, and the number of commits
375 -we are bisecting right now to `bisect_all`.
376 -
377 ---bisect-all::
378 -
379 -This outputs all the commit objects between the included and excluded
380 -commits, ordered by their distance to the included and excluded
381 -commits. The farthest from them is displayed first. (This is the only
382 -one displayed by `--bisect`.)
383 -
384 -This is useful because it makes it easy to choose a good commit to
385 -test when you want to avoid to test some of them for some reason (they
386 -may not compile for example).
387 -
388 -This option can be used along with `--bisect-vars`, in this case,
389 -after all the sorted commit objects, there will be the same text as if
390 -`--bisect-vars` had been used alone.
391 -
392 ---
393 -
394 -Commit Ordering
395 -~~~~~~~~~~~~~~~
396 -
397 -By default, the commits are shown in reverse chronological order.
398 -
399 ---topo-order::
400 -
401 - This option makes them appear in topological order (i.e.
402 - descendant commits are shown before their parents).
403 -
404 ---date-order::
405 -
406 - This option is similar to '--topo-order' in the sense that no
407 - parent comes before all of its children, but otherwise things
408 - are still ordered in the commit timestamp order.
409 -
410 ---reverse::
411 -
412 - Output the commits in reverse order.
413 - Cannot be combined with '\--walk-reflogs'.
414 -
415 -Object Traversal
416 -~~~~~~~~~~~~~~~~
417 -
418 -These options are mostly targeted for packing of git repositories.
419 -
420 ---objects::
421 -
422 - Print the object IDs of any object referenced by the listed
423 - commits. 'git-rev-list --objects foo ^bar' thus means "send me
424 - all object IDs which I need to download if I have the commit
425 - object 'bar', but not 'foo'".
426 -
427 ---objects-edge::
428 -
429 - Similar to '--objects', but also print the IDs of excluded
430 - commits prefixed with a "-" character. This is used by
431 - linkgit:git-pack-objects[1] to build "thin" pack, which records
432 - objects in deltified form based on objects contained in these
433 - excluded commits to reduce network traffic.
434 -
435 ---unpacked::
436 -
437 - Only useful with '--objects'; print the object IDs that are not
438 - in packs.
439 -
440 ---no-walk::
441 -
442 - Only show the given revs, but do not traverse their ancestors.
443 -
444 ---do-walk::
445 -
446 - Overrides a previous --no-walk.
447 -
91 +:git-rev-list: 1
92 +include::rev-list-options.txt[]
93
94 include::pretty-formats.txt[]
95
Documentation/rev-list-options.txt new
+361
@@ -0,0 +1,361 @@
1 +Commit Formatting
2 +~~~~~~~~~~~~~~~~~
3 +
4 +ifdef::git-rev-list[]
5 +Using these options, linkgit:git-rev-list[1] will act similar to the
6 +more specialized family of commit log tools: linkgit:git-log[1],
7 +linkgit:git-show[1], and linkgit:git-whatchanged[1]
8 +endif::git-rev-list[]
9 +
10 +include::pretty-options.txt[]
11 +
12 +--relative-date::
13 +
14 + Synonym for `--date=relative`.
15 +
16 +--date={relative,local,default,iso,rfc}::
17 +
18 + Only takes effect for dates shown in human-readable format, such
19 + as when using "--pretty".
20 ++
21 +`--date=relative` shows dates relative to the current time,
22 +e.g. "2 hours ago".
23 ++
24 +`--date=local` shows timestamps in user's local timezone.
25 ++
26 +`--date=iso` (or `--date=iso8601`) shows timestamps in ISO 8601 format.
27 ++
28 +`--date=rfc` (or `--date=rfc2822`) shows timestamps in RFC 2822
29 +format, often found in E-mail messages.
30 ++
31 +`--date=short` shows only date but not time, in `YYYY-MM-DD` format.
32 ++
33 +`--date=default` shows timestamps in the original timezone
34 +(either committer's or author's).
35 +
36 +--header::
37 +
38 + Print the contents of the commit in raw-format; each record is
39 + separated with a NUL character.
40 +
41 +--parents::
42 +
43 + Print the parents of the commit.
44 +
45 +--timestamp::
46 + Print the raw commit timestamp.
47 +
48 +--left-right::
49 +
50 + Mark which side of a symmetric diff a commit is reachable from.
51 + Commits from the left side are prefixed with `<` and those from
52 + the right with `>`. If combined with `--boundary`, those
53 + commits are prefixed with `-`.
54 ++
55 +For example, if you have this topology:
56 ++
57 +-----------------------------------------------------------------------
58 + y---b---b branch B
59 + / \ /
60 + / .
61 + / / \
62 + o---x---a---a branch A
63 +-----------------------------------------------------------------------
64 ++
65 +you would get an output line this:
66 ++
67 +-----------------------------------------------------------------------
68 + $ git rev-list --left-right --boundary --pretty=oneline A...B
69 +
70 + >bbbbbbb... 3rd on b
71 + >bbbbbbb... 2nd on b
72 + <aaaaaaa... 3rd on a
73 + <aaaaaaa... 2nd on a
74 + -yyyyyyy... 1st on b
75 + -xxxxxxx... 1st on a
76 +-----------------------------------------------------------------------
77 +
78 +Diff Formatting
79 +~~~~~~~~~~~~~~~
80 +
81 +Below are listed options that control the formatting of diff output.
82 +Some of them are specific to linkgit:git-rev-list[1], however other diff
83 +options may be given. See linkgit:git-diff-files[1] for more options.
84 +
85 +-c::
86 +
87 + This flag changes the way a merge commit is displayed. It shows
88 + the differences from each of the parents to the merge result
89 + simultaneously instead of showing pairwise diff between a parent
90 + and the result one at a time. Furthermore, it lists only files
91 + which were modified from all parents.
92 +
93 +--cc::
94 +
95 + This flag implies the '-c' options and further compresses the
96 + patch output by omitting hunks that show differences from only
97 + one parent, or show the same change from all but one parent for
98 + an Octopus merge.
99 +
100 +-r::
101 +
102 + Show recursive diffs.
103 +
104 +-t::
105 +
106 + Show the tree objects in the diff output. This implies '-r'.
107 +
108 +Commit Limiting
109 +~~~~~~~~~~~~~~~
110 +
111 +Besides specifying a range of commits that should be listed using the
112 +special notations explained in the description, additional commit
113 +limiting may be applied.
114 +
115 +--
116 +
117 +-n 'number', --max-count='number'::
118 +
119 + Limit the number of commits output.
120 +
121 +--skip='number'::
122 +
123 + Skip 'number' commits before starting to show the commit output.
124 +
125 +--since='date', --after='date'::
126 +
127 + Show commits more recent than a specific date.
128 +
129 +--until='date', --before='date'::
130 +
131 + Show commits older than a specific date.
132 +
133 +--max-age='timestamp', --min-age='timestamp'::
134 +
135 + Limit the commits output to specified time range.
136 +
137 +--author='pattern', --committer='pattern'::
138 +
139 + Limit the commits output to ones with author/committer
140 + header lines that match the specified pattern (regular expression).
141 +
142 +--grep='pattern'::
143 +
144 + Limit the commits output to ones with log message that
145 + matches the specified pattern (regular expression).
146 +
147 +-i, --regexp-ignore-case::
148 +
149 + Match the regexp limiting patterns without regard to letters case.
150 +
151 +-E, --extended-regexp::
152 +
153 + Consider the limiting patterns to be extended regular expressions
154 + instead of the default basic regular expressions.
155 +
156 +--remove-empty::
157 +
158 + Stop when a given path disappears from the tree.
159 +
160 +--full-history::
161 +
162 + Show also parts of history irrelevant to current state of a given
163 + path. This turns off history simplification, which removed merges
164 + which didn't change anything at all at some child. It will still actually
165 + simplify away merges that didn't change anything at all into either
166 + child.
167 +
168 +--no-merges::
169 +
170 + Do not print commits with more than one parent.
171 +
172 +--first-parent::
173 + Follow only the first parent commit upon seeing a merge
174 + commit. This option can give a better overview when
175 + viewing the evolution of a particular topic branch,
176 + because merges into a topic branch tend to be only about
177 + adjusting to updated upstream from time to time, and
178 + this option allows you to ignore the individual commits
179 + brought in to your history by such a merge.
180 +
181 +--not::
182 +
183 + Reverses the meaning of the '{caret}' prefix (or lack thereof)
184 + for all following revision specifiers, up to the next '--not'.
185 +
186 +--all::
187 +
188 + Pretend as if all the refs in `$GIT_DIR/refs/` are listed on the
189 + command line as '<commit>'.
190 +
191 +--stdin::
192 +
193 + In addition to the '<commit>' listed on the command
194 + line, read them from the standard input.
195 +
196 +--quiet::
197 +
198 + Don't print anything to standard output. This form
199 + is primarily meant to allow the caller to
200 + test the exit status to see if a range of objects is fully
201 + connected (or not). It is faster than redirecting stdout
202 + to /dev/null as the output does not have to be formatted.
203 +
204 +--cherry-pick::
205 +
206 + Omit any commit that introduces the same change as
207 + another commit on the "other side" when the set of
208 + commits are limited with symmetric difference.
209 ++
210 +For example, if you have two branches, `A` and `B`, a usual way
211 +to list all commits on only one side of them is with
212 +`--left-right`, like the example above in the description of
213 +that option. It however shows the commits that were cherry-picked
214 +from the other branch (for example, "3rd on b" may be cherry-picked
215 +from branch A). With this option, such pairs of commits are
216 +excluded from the output.
217 +
218 +-g, --walk-reflogs::
219 +
220 + Instead of walking the commit ancestry chain, walk
221 + reflog entries from the most recent one to older ones.
222 + When this option is used you cannot specify commits to
223 + exclude (that is, '{caret}commit', 'commit1..commit2',
224 + nor 'commit1...commit2' notations cannot be used).
225 ++
226 +With '\--pretty' format other than oneline (for obvious reasons),
227 +this causes the output to have two extra lines of information
228 +taken from the reflog. By default, 'commit@\{Nth}' notation is
229 +used in the output. When the starting commit is specified as
230 +'commit@{now}', output also uses 'commit@\{timestamp}' notation
231 +instead. Under '\--pretty=oneline', the commit message is
232 +prefixed with this information on the same line.
233 +
234 +Cannot be combined with '\--reverse'.
235 +See also linkgit:git-reflog[1].
236 +
237 +--merge::
238 +
239 + After a failed merge, show refs that touch files having a
240 + conflict and don't exist on all heads to merge.
241 +
242 +--boundary::
243 +
244 + Output uninteresting commits at the boundary, which are usually
245 + not shown.
246 +
247 +--dense, --sparse::
248 +
249 +When optional paths are given, the default behaviour ('--dense') is to
250 +only output commits that changes at least one of them, and also ignore
251 +merges that do not touch the given paths.
252 +
253 +Use the '--sparse' flag to makes the command output all eligible commits
254 +(still subject to count and age limitation), but apply merge
255 +simplification nevertheless.
256 +
257 +ifdef::git-rev-list[]
258 +--bisect::
259 +
260 +Limit output to the one commit object which is roughly halfway between
261 +the included and excluded commits. Thus, if
262 +
263 +-----------------------------------------------------------------------
264 + $ git-rev-list --bisect foo ^bar ^baz
265 +-----------------------------------------------------------------------
266 +
267 +outputs 'midpoint', the output of the two commands
268 +
269 +-----------------------------------------------------------------------
270 + $ git-rev-list foo ^midpoint
271 + $ git-rev-list midpoint ^bar ^baz
272 +-----------------------------------------------------------------------
273 +
274 +would be of roughly the same length. Finding the change which
275 +introduces a regression is thus reduced to a binary search: repeatedly
276 +generate and test new 'midpoint's until the commit chain is of length
277 +one.
278 +
279 +--bisect-vars::
280 +
281 +This calculates the same as `--bisect`, but outputs text ready
282 +to be eval'ed by the shell. These lines will assign the name of
283 +the midpoint revision to the variable `bisect_rev`, and the
284 +expected number of commits to be tested after `bisect_rev` is
285 +tested to `bisect_nr`, the expected number of commits to be
286 +tested if `bisect_rev` turns out to be good to `bisect_good`,
287 +the expected number of commits to be tested if `bisect_rev`
288 +turns out to be bad to `bisect_bad`, and the number of commits
289 +we are bisecting right now to `bisect_all`.
290 +
291 +--bisect-all::
292 +
293 +This outputs all the commit objects between the included and excluded
294 +commits, ordered by their distance to the included and excluded
295 +commits. The farthest from them is displayed first. (This is the only
296 +one displayed by `--bisect`.)
297 +
298 +This is useful because it makes it easy to choose a good commit to
299 +test when you want to avoid to test some of them for some reason (they
300 +may not compile for example).
301 +
302 +This option can be used along with `--bisect-vars`, in this case,
303 +after all the sorted commit objects, there will be the same text as if
304 +`--bisect-vars` had been used alone.
305 +endif::git-rev-list[]
306 +
307 +--
308 +
309 +Commit Ordering
310 +~~~~~~~~~~~~~~~
311 +
312 +By default, the commits are shown in reverse chronological order.
313 +
314 +--topo-order::
315 +
316 + This option makes them appear in topological order (i.e.
317 + descendant commits are shown before their parents).
318 +
319 +--date-order::
320 +
321 + This option is similar to '--topo-order' in the sense that no
322 + parent comes before all of its children, but otherwise things
323 + are still ordered in the commit timestamp order.
324 +
325 +--reverse::
326 +
327 + Output the commits in reverse order.
328 + Cannot be combined with '\--walk-reflogs'.
329 +
330 +Object Traversal
331 +~~~~~~~~~~~~~~~~
332 +
333 +These options are mostly targeted for packing of git repositories.
334 +
335 +--objects::
336 +
337 + Print the object IDs of any object referenced by the listed
338 + commits. '--objects foo ^bar' thus means "send me
339 + all object IDs which I need to download if I have the commit
340 + object 'bar', but not 'foo'".
341 +
342 +--objects-edge::
343 +
344 + Similar to '--objects', but also print the IDs of excluded
345 + commits prefixed with a "-" character. This is used by
346 + linkgit:git-pack-objects[1] to build "thin" pack, which records
347 + objects in deltified form based on objects contained in these
348 + excluded commits to reduce network traffic.
349 +
350 +--unpacked::
351 +
352 + Only useful with '--objects'; print the object IDs that are not
353 + in packs.
354 +
355 +--no-walk::
356 +
357 + Only show the given revs, but do not traverse their ancestors.
358 +
359 +--do-walk::
360 +
361 + Overrides a previous --no-walk.