git-rev-list(1)
===============

NAME
----
git-rev-list - Lists commit objects in reverse chronological order


SYNOPSIS
--------
[verse]
'git-rev-list' [ \--max-count=number ]
	     [ \--max-age=timestamp ]
	     [ \--min-age=timestamp ]
	     [ \--sparse ]
	     [ \--no-merges ]
	     [ \--remove-empty ]
	     [ \--all ]
	     [ [ \--merge-order [ \--show-breaks ] ] | [ \--topo-order ] ]
	     [ \--parents ]
	     [ \--objects [ \--unpacked ] ]
	     [ \--pretty | \--header ]
	     [ \--bisect ]
	     <commit>... [ \-- <paths>... ]

DESCRIPTION
-----------
Lists commit objects in reverse chronological order starting at the
given commit(s), taking ancestry relationship into account.  This is
useful to produce human-readable log output.

Commits which are stated with a preceding '{caret}' cause listing to stop at
that point. Their parents are implied. "git-rev-list foo bar {caret}baz" thus
means "list all the commits which are included in 'foo' and 'bar', but
not in 'baz'".

A special notation <commit1>..<commit2> can be used as a
short-hand for {caret}<commit1> <commit2>.


OPTIONS
-------
--pretty::
	Print the contents of the commit changesets in human-readable form.

--header::
	Print the contents of the commit in raw-format; each
	record is separated with a NUL character.

--objects::
	Print the object IDs of any object referenced by the listed commits.
	'git-rev-list --objects foo ^bar' thus means "send me all object IDs
	which I need to download if I have the commit object 'bar', but
	not 'foo'".

--unpacked::
	Only useful with `--objects`; print the object IDs that
	are not in packs.

--bisect::
	Limit output to the one commit object which is roughly halfway
	between the included and excluded commits. Thus, if 'git-rev-list
	--bisect foo ^bar ^baz' outputs 'midpoint', the output
	of 'git-rev-list foo ^midpoint' and 'git-rev-list midpoint
	^bar ^baz' would be of roughly the same length. Finding the change
	which introduces a regression is thus reduced to a binary search:
	repeatedly generate and test new 'midpoint's until the commit chain
	is of length one.

--max-count::
	Limit the number of commits output.

--max-age=timestamp, --min-age=timestamp::
	Limit the commits output to specified time range.

--sparse::
	When optional paths are given, the command outputs only
	the commits that changes at least one of them, and also
	ignores merges that do not touch the given paths.  This
	flag makes the command output all eligible commits
	(still subject to count and age limitation), but apply
	merge simplification nevertheless.

--remove-empty::
	Stop when a given path disappears from the tree.

--all::
	Pretend as if all the refs in `$GIT_DIR/refs/` are
	listed on the command line as <commit>.

--topo-order::
	By default, the commits are shown in reverse
	chronological order.  This option makes them appear in
	topological order (i.e. descendant commits are shown
	before their parents).

--merge-order::
	When specified the commit history is decomposed into a unique
	sequence of minimal, non-linear epochs and maximal, linear epochs.
	Non-linear epochs are then linearised by sorting them into merge
	order, which is described below.
+
Maximal, linear epochs correspond to periods of sequential development.
Minimal, non-linear epochs correspond to periods of divergent development
followed by a converging merge. The theory of epochs is described in more
detail at
link:http://blackcubes.dyndns.org/epoch/[http://blackcubes.dyndns.org/epoch/].
+
The merge order for a non-linear epoch is defined as a linearisation for which
the following invariants are true:
+
    1. if a commit P is reachable from commit N, commit P sorts after commit N
       in the linearised list.
    2. if Pi and Pj are any two parents of a merge M (with i < j), then any
       commit N, such that N is reachable from Pj but not reachable from Pi,
       sorts before all commits reachable from Pi.
+
Invariant 1 states that later commits appear before earlier commits they are
derived from.
+
Invariant 2 states that commits unique to "later" parents in a merge, appear
before all commits from "earlier" parents of a merge.

--show-breaks::
	Each item of the list is output with a 2-character prefix consisting
	of one of: (|), (^), (=) followed by a space.
+
Commits marked with (=) represent the boundaries of minimal, non-linear epochs
and correspond either to the start of a period of divergent development or to
the end of such a period.
+
Commits marked with (|) are direct parents of commits immediately preceding
the marked commit in the list.
+
Commits marked with (^) are not parents of the immediately preceding commit.
These "breaks" represent necessary discontinuities implied by trying to
represent an arbitrary DAG in a linear form.
+
`--show-breaks` is only valid if `--merge-order` is also specified.


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Original *--merge-order* logic by Jon Seymour <jon.seymour@gmail.com>

Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite

