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

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


SYNOPSIS
--------
'git-rev-list' [ \--max-count=number ]
	[ \--max-age=timestamp ]
	[ \--min-age=timestamp ]
	[ \--sparse ]
	[ \--no-merges ]
	[ \--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.

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

