git-rev-list(1)
===============
v0.1, May 2005

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


SYNOPSIS
--------
'git-rev-list' [ *--max-count*=number ] [ *--max-age*=timestamp ] [ *--min-age*=timestamp ] [ *--bisect* ] [ *--pretty* ] [ *--objects* ] [ *--merge-order* [ *--show-breaks* ] ] <commit> [ <commit> ...] [ ^<commit> ...]

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 '^' cause listing to stop at
that point. Their parents are implied. "git-rev-list foo bar ^baz" thus
means "list all the commits which are included in 'foo' and 'bar', but
not in 'baz'".

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

--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'".

--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.

--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 arbtirary 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

