[ --no-merges ]\r
[ --remove-empty ]\r
[ --all ]\r
- [ [ --merge-order [ --show-breaks ] ] | [ --topo-order ] ]\r
+ [ --topo-order ]\r
[ --parents ]\r
[ [--objects | --objects-edge] [ --unpacked ] ]\r
[ --pretty | --header ]\r
before their parents).\r
</p>\r
</dd>\r
-<dt>\r
---merge-order\r
-</dt>\r
-<dd>\r
-<p>\r
- When specified the commit history is decomposed into a unique\r
- sequence of minimal, non-linear epochs and maximal, linear epochs.\r
- Non-linear epochs are then linearised by sorting them into merge\r
- order, which is described below.\r
-</p>\r
-<p>Maximal, linear epochs correspond to periods of sequential development.\r
-Minimal, non-linear epochs correspond to periods of divergent development\r
-followed by a converging merge. The theory of epochs is described in more\r
-detail at\r
-<a href="http://blackcubes.dyndns.org/epoch/">http://blackcubes.dyndns.org/epoch/</a>.</p>\r
-<p>The merge order for a non-linear epoch is defined as a linearisation for which\r
-the following invariants are true:</p>\r
-<ol>\r
-<li>\r
-<p>\r
-if a commit P is reachable from commit N, commit P sorts after commit N\r
- in the linearised list.\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-if Pi and Pj are any two parents of a merge M (with i < j), then any\r
- commit N, such that N is reachable from Pj but not reachable from Pi,\r
- sorts before all commits reachable from Pi.\r
-</p>\r
-<p>Invariant 1 states that later commits appear before earlier commits they are\r
-derived from.</p>\r
-<p>Invariant 2 states that commits unique to "later" parents in a merge, appear\r
-before all commits from "earlier" parents of a merge.</p>\r
-</li>\r
-</ol>\r
-</dd>\r
-<dt>\r
---show-breaks\r
-</dt>\r
-<dd>\r
-<p>\r
- Each item of the list is output with a 2-character prefix consisting\r
- of one of: (|), (^), (=) followed by a space.\r
-</p>\r
-<p>Commits marked with (=) represent the boundaries of minimal, non-linear epochs\r
-and correspond either to the start of a period of divergent development or to\r
-the end of such a period.</p>\r
-<p>Commits marked with (|) are direct parents of commits immediately preceding\r
-the marked commit in the list.</p>\r
-<p>Commits marked with (^) are not parents of the immediately preceding commit.\r
-These "breaks" represent necessary discontinuities implied by trying to\r
-represent an arbitrary DAG in a linear form.</p>\r
-<p><tt>--show-breaks</tt> is only valid if <tt>--merge-order</tt> is also specified.</p>\r
-</dd>\r
</dl>\r
</div>\r
<h2>Author</h2>\r
<div class="sectionbody">\r
<p>Written by Linus Torvalds <torvalds@osdl.org></p>\r
-<p>Original <strong>--merge-order</strong> logic by Jon Seymour <jon.seymour@gmail.com></p>\r
</div>\r
<h2>Documentation</h2>\r
<div class="sectionbody">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 02-Mar-2006 09:14:49 UTC\r
+Last updated 04-Mar-2006 22:16:33 UTC\r
</div>\r
</div>\r
</body>\r