@@ -66,8 +66,6 @@ test_expect_success setup '
6666 test_commit M file "Parts 1+2"
6767'
6868
69- # could we soup this up to optionally check parents? So "(BA)C" would check
70- # that C is shown and has parents B A.
7169check_outcome () {
7270 outcome=$1
7371 shift
@@ -109,45 +107,47 @@ check_result () {
109107# except the most basic list. Achieving this means normal merge D will also be
110108# shown in normal full-history, as we can't distinguish unless we do a
111109# simplification pass. After simplification, D is dropped but G remains.
110+ # Also, merge simplification of G should not drop the parent B that the default
111+ # simple history follows.
112112check_result ' M L K J I H G F E D C B A'
113113check_result ' (LH)M (K)L (GJ)K (I)J (G)I (G)H (FE)G (D)F (B)E (BC)D (A)C (A)B A'
114114check_result ' M H L K J I G E F D C B A' --topo-order
115115check_result ' M L H B A' -- file
116- check_result ' M L H B A' --parents -- file
116+ check_result ' (LH)M (B)L (B)H (A) B A' --parents -- file
117117check_outcome failure ' M L J I H G F D B A' --full-history -- file # drops G
118- check_result ' M L K J I H G F D B A' --full-history --parents -- file
119- check_outcome failure ' M H L J I G F B A' --simplify-merges -- file # drops G
118+ check_result ' (LH)M (K)L (GJ)K (I)J (G)I (G)H (FB)G (D)F (BA)D (A) B A' --full-history --parents -- file
119+ check_outcome failure ' (LH)M (G)H (J)L (I)J (G)I (FB)G (B)F (A) B A' --simplify-merges -- file # drops G
120120check_result ' M L K G F D B A' --first-parent
121121check_result ' M L G F B A' --first-parent -- file
122122
123123# Check that odd merge G remains shown when F is the bottom.
124124check_result ' M L K J I H G E' F..M
125125check_result ' M H L K J I G E' F..M --topo-order
126126check_result ' M L H' F..M -- file
127- check_result ' M L H' F..M --parents -- file # L+H's parents rewritten to B, so more useful than it may seem
127+ check_result ' (LH)M (B)L (B) H' --parents F..M -- file
128128check_outcome failure ' M L J I H G' F..M --full-history -- file # drops G
129- check_result ' M L K J I H G' F..M --full-history --parents -- file
130- check_outcome failure ' M H L J I G' F..M --simplify-merges -- file # drops G
129+ check_result ' (LH)M (K)L (GJ)K (I)J (G)I (G)H (FB) G' F..M --full-history --parents -- file
130+ check_outcome failure ' (LH)M (G)H (J)L (I)J (G)I (FB) G' F..M --simplify-merges -- file # drops G
131131check_result ' M L K J I H G' F..M --ancestry-path
132132check_outcome failure ' M L J I H G' F..M --ancestry-path -- file # drops G
133- check_result ' M L K J I H G' F..M --ancestry-path --parents -- file
134- check_result ' M H L J I G' F..M --ancestry-path --simplify-merges -- file
133+ check_result ' (LH)M (K)L (GJ)K (I)J (G)I (G)H (FE) G' F..M --ancestry-path --parents -- file
134+ check_result ' (LH)M (G)H (J)L (I)J (G)I (FE) G' F..M --ancestry-path --simplify-merges -- file
135135check_result ' M L K G' F..M --first-parent
136136check_result ' M L G' F..M --first-parent -- file
137137
138138# Note that G is pruned when E is the bottom, even if it's the same commit list
139139# If we want history since E, then we're quite happy to ignore G that took E.
140140check_result ' M L K J I H G' E..M --ancestry-path
141141check_result ' M L J I H' E..M --ancestry-path -- file
142- check_outcome failure ' M L K J I H' E..M --ancestry-path --parents -- file # includes G
143- check_outcome failure ' M H L J I' E..M --ancestry-path --simplify-merges -- file # includes G
142+ check_outcome failure ' (LH)M (K)L (EJ)K (I)J (E)I (E) H' E..M --ancestry-path --parents -- file # includes G
143+ check_outcome failure ' (LH)M (E)H (J)L (I)J (E) I' E..M --ancestry-path --simplify-merges -- file # includes G
144144
145145# Should still be able to ignore I-J branch in simple log, despite limiting
146146# to G.
147147check_result ' M L K J I H' G..M
148148check_result ' M H L K J I' G..M --topo-order
149149check_outcome failure ' M L H' G..M -- file # includes J I
150- check_outcome failure ' M L H' G..M --parents -- file # includes J I
150+ check_outcome failure ' (LH)M (G)L (G) H' G..M --parents -- file # includes J I
151151check_result ' M L J I H' G..M --full-history -- file
152152check_result ' M L K J I H' G..M --full-history --parents -- file
153153check_result ' M H L J I' G..M --simplify-merges -- file
@@ -162,10 +162,10 @@ check_result 'M H L J I' G..M --ancestry-path --simplify-merges -- file
162162# we can't decide if the merge from INTERESTING commit C was sensible.
163163check_result ' F D C' B..F
164164check_result ' F' B..F -- file
165- check_outcome failure ' F' B..F --parents -- file # includes D
165+ check_outcome failure ' (B) F' B..F --parents -- file # includes D
166166check_outcome failure ' F D' B..F --full-history -- file # drops D prematurely
167- check_result ' F D' B..F --full-history --parents -- file
168- check_result ' F' B..F --simplify-merges -- file
167+ check_result ' (D)F (BA) D' B..F --full-history --parents -- file
168+ check_result ' (B) F' B..F --simplify-merges -- file
169169check_result ' F D' B..F --ancestry-path
170170check_result ' F' B..F --ancestry-path -- file
171171check_outcome failure ' F' B..F --ancestry-path --parents -- file # includes D
@@ -181,10 +181,10 @@ check_result 'F' E...F -- file
181181# and it differs from it.
182182check_result ' F D B' C..F
183183check_result ' F B' C..F -- file
184- check_result ' F B' C..F --parents -- file
184+ check_result ' (B)F (A) B' C..F --parents -- file
185185check_outcome failure ' F D B' C..F --full-history -- file # drops D
186- check_result ' F D B' C..F --full-history --parents -- file
187- check_result ' F D B' C..F --simplify-merges -- file
186+ check_result ' (D)F (BC)D (A) B' C..F --full-history --parents -- file
187+ check_result ' (D)F (BC)D (A) B' C..F --simplify-merges -- file
188188check_result ' F D' C..F --ancestry-path
189189check_outcome failure ' F D' C..F --ancestry-path -- file # drops D
190190check_result ' F D' C..F --ancestry-path --parents -- file
0 commit comments