@@ -16,7 +16,7 @@ SYNOPSIS
16
16
[ \--no-merges ]
17
17
[ \--remove-empty ]
18
18
[ \--all ]
19
- [ [ \--merge-order [ \--show-breaks ] ] | [ \-- topo-order ] ]
19
+ [ \--topo-order ]
20
20
[ \--parents ]
21
21
[ \--objects [ \--unpacked ] ]
22
22
[ \--pretty | \--header ]
@@ -94,57 +94,10 @@ OPTIONS
94
94
topological order (i.e. descendant commits are shown
95
95
before their parents).
96
96
97
- --merge-order::
98
- When specified the commit history is decomposed into a unique
99
- sequence of minimal, non-linear epochs and maximal, linear epochs.
100
- Non-linear epochs are then linearised by sorting them into merge
101
- order, which is described below.
102
- +
103
- Maximal, linear epochs correspond to periods of sequential development.
104
- Minimal, non-linear epochs correspond to periods of divergent development
105
- followed by a converging merge. The theory of epochs is described in more
106
- detail at
107
- link:http://blackcubes.dyndns.org/epoch/[http://blackcubes.dyndns.org/epoch/].
108
- +
109
- The merge order for a non-linear epoch is defined as a linearisation for which
110
- the following invariants are true:
111
- +
112
- 1. if a commit P is reachable from commit N, commit P sorts after commit N
113
- in the linearised list.
114
- 2. if Pi and Pj are any two parents of a merge M (with i < j), then any
115
- commit N, such that N is reachable from Pj but not reachable from Pi,
116
- sorts before all commits reachable from Pi.
117
- +
118
- Invariant 1 states that later commits appear before earlier commits they are
119
- derived from.
120
- +
121
- Invariant 2 states that commits unique to "later" parents in a merge, appear
122
- before all commits from "earlier" parents of a merge.
123
-
124
- --show-breaks::
125
- Each item of the list is output with a 2-character prefix consisting
126
- of one of: (|), (^), (=) followed by a space.
127
- +
128
- Commits marked with (=) represent the boundaries of minimal, non-linear epochs
129
- and correspond either to the start of a period of divergent development or to
130
- the end of such a period.
131
- +
132
- Commits marked with (|) are direct parents of commits immediately preceding
133
- the marked commit in the list.
134
- +
135
- Commits marked with (^) are not parents of the immediately preceding commit.
136
- These "breaks" represent necessary discontinuities implied by trying to
137
- represent an arbitrary DAG in a linear form.
138
- +
139
- `--show-breaks` is only valid if `--merge-order` is also specified.
140
-
141
-
142
97
Author
143
98
------
144
99
Written by Linus Torvalds <
[email protected] >
145
100
146
- Original *--merge-order* logic by Jon Seymour <
[email protected] >
147
-
148
101
Documentation
149
102
--------------
150
103
Documentation by David Greaves, Junio C Hamano and the git-list <
[email protected] >.
0 commit comments