]>
Commit | Line | Data |
---|---|---|
04005834 NP |
1 | #!/bin/sh |
2 | ||
3 | test_description='git log --graph of skewed left octopus merge.' | |
4 | ||
8f37854b | 5 | GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main |
334afbc7 JS |
6 | export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME |
7 | ||
04005834 | 8 | . ./test-lib.sh |
989eea95 AK |
9 | . "$TEST_DIRECTORY"/lib-log-graph.sh |
10 | ||
11 | test_cmp_graph () { | |
12 | cat >expect && | |
13 | lib_test_cmp_graph --color=never --date-order --format=%s "$@" | |
14 | } | |
04005834 | 15 | |
ffe00557 AK |
16 | test_cmp_colored_graph () { |
17 | lib_test_cmp_colored_graph --date-order --format=%s "$@" | |
18 | } | |
19 | ||
04005834 | 20 | test_expect_success 'set up merge history' ' |
63be8c8d DL |
21 | test_commit initial && |
22 | for i in 1 2 3 4 ; do | |
8f37854b | 23 | git checkout main -b $i || return $? |
63be8c8d DL |
24 | # Make tag name different from branch name, to avoid |
25 | # ambiguity error when calling checkout. | |
26 | test_commit $i $i $i tag$i || return $? | |
27 | done && | |
28 | git checkout 1 -b merge && | |
29 | test_merge octopus-merge 1 2 3 4 && | |
11c21f22 | 30 | test_commit after-merge && |
63be8c8d | 31 | git checkout 1 -b L && |
11c21f22 DL |
32 | test_commit left && |
33 | git checkout 4 -b crossover && | |
34 | test_commit after-4 && | |
35 | git checkout initial -b more-L && | |
36 | test_commit after-initial | |
63be8c8d DL |
37 | ' |
38 | ||
39 | test_expect_success 'log --graph with tricky octopus merge, no color' ' | |
989eea95 | 40 | test_cmp_graph left octopus-merge <<-\EOF |
04005834 | 41 | * left |
0f0f389f JC |
42 | | *-. octopus-merge |
43 | |/|\ \ | |
04005834 NP |
44 | | | | * 4 |
45 | | | * | 3 | |
46 | | | |/ | |
479db18b | 47 | | * / 2 |
04005834 | 48 | | |/ |
479db18b | 49 | * / 1 |
04005834 NP |
50 | |/ |
51 | * initial | |
52 | EOF | |
63be8c8d DL |
53 | ' |
54 | ||
55 | test_expect_success 'log --graph with tricky octopus merge with colors' ' | |
56 | test_config log.graphColors red,green,yellow,blue,magenta,cyan && | |
04005834 NP |
57 | cat >expect.colors <<-\EOF && |
58 | * left | |
0f0f389f JC |
59 | <RED>|<RESET> *<MAGENTA>-<RESET><MAGENTA>.<RESET> octopus-merge |
60 | <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET><BLUE>\<RESET> <MAGENTA>\<RESET> | |
04005834 NP |
61 | <RED>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 4 |
62 | <RED>|<RESET> <YELLOW>|<RESET> * <MAGENTA>|<RESET> 3 | |
63 | <RED>|<RESET> <YELLOW>|<RESET> <MAGENTA>|<RESET><MAGENTA>/<RESET> | |
479db18b | 64 | <RED>|<RESET> * <MAGENTA>/<RESET> 2 |
04005834 | 65 | <RED>|<RESET> <MAGENTA>|<RESET><MAGENTA>/<RESET> |
479db18b | 66 | * <MAGENTA>/<RESET> 1 |
04005834 NP |
67 | <MAGENTA>|<RESET><MAGENTA>/<RESET> |
68 | * initial | |
69 | EOF | |
ffe00557 | 70 | test_cmp_colored_graph left octopus-merge |
04005834 NP |
71 | ' |
72 | ||
04005834 NP |
73 | # Repeat the previous two tests with "normal" octopus merge (i.e., |
74 | # without the first parent skewing to the "left" branch column). | |
75 | ||
76 | test_expect_success 'log --graph with normal octopus merge, no color' ' | |
989eea95 | 77 | test_cmp_graph octopus-merge <<-\EOF |
04005834 NP |
78 | *---. octopus-merge |
79 | |\ \ \ | |
80 | | | | * 4 | |
81 | | | * | 3 | |
82 | | | |/ | |
479db18b | 83 | | * / 2 |
04005834 | 84 | | |/ |
479db18b | 85 | * / 1 |
04005834 NP |
86 | |/ |
87 | * initial | |
88 | EOF | |
04005834 NP |
89 | ' |
90 | ||
91 | test_expect_success 'log --graph with normal octopus merge with colors' ' | |
92 | cat >expect.colors <<-\EOF && | |
93 | *<YELLOW>-<RESET><YELLOW>-<RESET><BLUE>-<RESET><BLUE>.<RESET> octopus-merge | |
94 | <RED>|<RESET><GREEN>\<RESET> <YELLOW>\<RESET> <BLUE>\<RESET> | |
95 | <RED>|<RESET> <GREEN>|<RESET> <YELLOW>|<RESET> * 4 | |
96 | <RED>|<RESET> <GREEN>|<RESET> * <BLUE>|<RESET> 3 | |
97 | <RED>|<RESET> <GREEN>|<RESET> <BLUE>|<RESET><BLUE>/<RESET> | |
479db18b | 98 | <RED>|<RESET> * <BLUE>/<RESET> 2 |
04005834 | 99 | <RED>|<RESET> <BLUE>|<RESET><BLUE>/<RESET> |
479db18b | 100 | * <BLUE>/<RESET> 1 |
04005834 NP |
101 | <BLUE>|<RESET><BLUE>/<RESET> |
102 | * initial | |
103 | EOF | |
104 | test_config log.graphColors red,green,yellow,blue,magenta,cyan && | |
ffe00557 | 105 | test_cmp_colored_graph octopus-merge |
04005834 | 106 | ' |
11c21f22 DL |
107 | |
108 | test_expect_success 'log --graph with normal octopus merge and child, no color' ' | |
989eea95 | 109 | test_cmp_graph after-merge <<-\EOF |
11c21f22 DL |
110 | * after-merge |
111 | *---. octopus-merge | |
112 | |\ \ \ | |
113 | | | | * 4 | |
114 | | | * | 3 | |
115 | | | |/ | |
479db18b | 116 | | * / 2 |
11c21f22 | 117 | | |/ |
479db18b | 118 | * / 1 |
11c21f22 DL |
119 | |/ |
120 | * initial | |
121 | EOF | |
11c21f22 DL |
122 | ' |
123 | ||
bbb13e81 | 124 | test_expect_success 'log --graph with normal octopus and child merge with colors' ' |
11c21f22 DL |
125 | cat >expect.colors <<-\EOF && |
126 | * after-merge | |
127 | *<BLUE>-<RESET><BLUE>-<RESET><MAGENTA>-<RESET><MAGENTA>.<RESET> octopus-merge | |
128 | <GREEN>|<RESET><YELLOW>\<RESET> <BLUE>\<RESET> <MAGENTA>\<RESET> | |
129 | <GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 4 | |
130 | <GREEN>|<RESET> <YELLOW>|<RESET> * <MAGENTA>|<RESET> 3 | |
131 | <GREEN>|<RESET> <YELLOW>|<RESET> <MAGENTA>|<RESET><MAGENTA>/<RESET> | |
479db18b | 132 | <GREEN>|<RESET> * <MAGENTA>/<RESET> 2 |
11c21f22 | 133 | <GREEN>|<RESET> <MAGENTA>|<RESET><MAGENTA>/<RESET> |
479db18b | 134 | * <MAGENTA>/<RESET> 1 |
11c21f22 DL |
135 | <MAGENTA>|<RESET><MAGENTA>/<RESET> |
136 | * initial | |
137 | EOF | |
138 | test_config log.graphColors red,green,yellow,blue,magenta,cyan && | |
ffe00557 | 139 | test_cmp_colored_graph after-merge |
11c21f22 DL |
140 | ' |
141 | ||
142 | test_expect_success 'log --graph with tricky octopus merge and its child, no color' ' | |
989eea95 | 143 | test_cmp_graph left after-merge <<-\EOF |
11c21f22 DL |
144 | * left |
145 | | * after-merge | |
0f0f389f JC |
146 | | *-. octopus-merge |
147 | |/|\ \ | |
11c21f22 DL |
148 | | | | * 4 |
149 | | | * | 3 | |
150 | | | |/ | |
479db18b | 151 | | * / 2 |
11c21f22 | 152 | | |/ |
479db18b | 153 | * / 1 |
11c21f22 DL |
154 | |/ |
155 | * initial | |
156 | EOF | |
11c21f22 DL |
157 | ' |
158 | ||
bbb13e81 | 159 | test_expect_success 'log --graph with tricky octopus merge and its child with colors' ' |
11c21f22 DL |
160 | test_config log.graphColors red,green,yellow,blue,magenta,cyan && |
161 | cat >expect.colors <<-\EOF && | |
162 | * left | |
163 | <RED>|<RESET> * after-merge | |
0f0f389f JC |
164 | <RED>|<RESET> *<CYAN>-<RESET><CYAN>.<RESET> octopus-merge |
165 | <RED>|<RESET><RED>/<RESET><BLUE>|<RESET><MAGENTA>\<RESET> <CYAN>\<RESET> | |
11c21f22 DL |
166 | <RED>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET> * 4 |
167 | <RED>|<RESET> <BLUE>|<RESET> * <CYAN>|<RESET> 3 | |
168 | <RED>|<RESET> <BLUE>|<RESET> <CYAN>|<RESET><CYAN>/<RESET> | |
479db18b | 169 | <RED>|<RESET> * <CYAN>/<RESET> 2 |
11c21f22 | 170 | <RED>|<RESET> <CYAN>|<RESET><CYAN>/<RESET> |
479db18b | 171 | * <CYAN>/<RESET> 1 |
11c21f22 DL |
172 | <CYAN>|<RESET><CYAN>/<RESET> |
173 | * initial | |
174 | EOF | |
ffe00557 | 175 | test_cmp_colored_graph left after-merge |
11c21f22 DL |
176 | ' |
177 | ||
178 | test_expect_success 'log --graph with crossover in octopus merge, no color' ' | |
989eea95 | 179 | test_cmp_graph after-4 octopus-merge <<-\EOF |
11c21f22 DL |
180 | * after-4 |
181 | | *---. octopus-merge | |
182 | | |\ \ \ | |
183 | | |_|_|/ | |
184 | |/| | | | |
185 | * | | | 4 | |
186 | | | | * 3 | |
187 | | |_|/ | |
188 | |/| | | |
189 | | | * 2 | |
190 | | |/ | |
191 | |/| | |
192 | | * 1 | |
193 | |/ | |
194 | * initial | |
195 | EOF | |
11c21f22 DL |
196 | ' |
197 | ||
bbb13e81 | 198 | test_expect_success 'log --graph with crossover in octopus merge with colors' ' |
11c21f22 DL |
199 | test_config log.graphColors red,green,yellow,blue,magenta,cyan && |
200 | cat >expect.colors <<-\EOF && | |
201 | * after-4 | |
202 | <RED>|<RESET> *<BLUE>-<RESET><BLUE>-<RESET><RED>-<RESET><RED>.<RESET> octopus-merge | |
203 | <RED>|<RESET> <GREEN>|<RESET><YELLOW>\<RESET> <BLUE>\<RESET> <RED>\<RESET> | |
204 | <RED>|<RESET> <GREEN>|<RESET><RED>_<RESET><YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>/<RESET> | |
205 | <RED>|<RESET><RED>/<RESET><GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> | |
206 | * <GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> 4 | |
207 | <MAGENTA>|<RESET> <GREEN>|<RESET> <YELLOW>|<RESET> * 3 | |
208 | <MAGENTA>|<RESET> <GREEN>|<RESET><MAGENTA>_<RESET><YELLOW>|<RESET><MAGENTA>/<RESET> | |
209 | <MAGENTA>|<RESET><MAGENTA>/<RESET><GREEN>|<RESET> <YELLOW>|<RESET> | |
210 | <MAGENTA>|<RESET> <GREEN>|<RESET> * 2 | |
211 | <MAGENTA>|<RESET> <GREEN>|<RESET><MAGENTA>/<RESET> | |
212 | <MAGENTA>|<RESET><MAGENTA>/<RESET><GREEN>|<RESET> | |
213 | <MAGENTA>|<RESET> * 1 | |
214 | <MAGENTA>|<RESET><MAGENTA>/<RESET> | |
215 | * initial | |
216 | EOF | |
ffe00557 | 217 | test_cmp_colored_graph after-4 octopus-merge |
11c21f22 DL |
218 | ' |
219 | ||
220 | test_expect_success 'log --graph with crossover in octopus merge and its child, no color' ' | |
989eea95 | 221 | test_cmp_graph after-4 after-merge <<-\EOF |
11c21f22 DL |
222 | * after-4 |
223 | | * after-merge | |
224 | | *---. octopus-merge | |
225 | | |\ \ \ | |
226 | | |_|_|/ | |
227 | |/| | | | |
228 | * | | | 4 | |
229 | | | | * 3 | |
230 | | |_|/ | |
231 | |/| | | |
232 | | | * 2 | |
233 | | |/ | |
234 | |/| | |
235 | | * 1 | |
236 | |/ | |
237 | * initial | |
238 | EOF | |
11c21f22 DL |
239 | ' |
240 | ||
bbb13e81 | 241 | test_expect_success 'log --graph with crossover in octopus merge and its child with colors' ' |
11c21f22 DL |
242 | test_config log.graphColors red,green,yellow,blue,magenta,cyan && |
243 | cat >expect.colors <<-\EOF && | |
244 | * after-4 | |
245 | <RED>|<RESET> * after-merge | |
246 | <RED>|<RESET> *<MAGENTA>-<RESET><MAGENTA>-<RESET><RED>-<RESET><RED>.<RESET> octopus-merge | |
247 | <RED>|<RESET> <YELLOW>|<RESET><BLUE>\<RESET> <MAGENTA>\<RESET> <RED>\<RESET> | |
248 | <RED>|<RESET> <YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>_<RESET><MAGENTA>|<RESET><RED>/<RESET> | |
249 | <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET> | |
250 | * <YELLOW>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET> 4 | |
251 | <CYAN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 3 | |
252 | <CYAN>|<RESET> <YELLOW>|<RESET><CYAN>_<RESET><BLUE>|<RESET><CYAN>/<RESET> | |
253 | <CYAN>|<RESET><CYAN>/<RESET><YELLOW>|<RESET> <BLUE>|<RESET> | |
254 | <CYAN>|<RESET> <YELLOW>|<RESET> * 2 | |
255 | <CYAN>|<RESET> <YELLOW>|<RESET><CYAN>/<RESET> | |
256 | <CYAN>|<RESET><CYAN>/<RESET><YELLOW>|<RESET> | |
257 | <CYAN>|<RESET> * 1 | |
258 | <CYAN>|<RESET><CYAN>/<RESET> | |
259 | * initial | |
260 | EOF | |
ffe00557 | 261 | test_cmp_colored_graph after-4 after-merge |
11c21f22 DL |
262 | ' |
263 | ||
264 | test_expect_success 'log --graph with unrelated commit and octopus tip, no color' ' | |
989eea95 | 265 | test_cmp_graph after-initial octopus-merge <<-\EOF |
11c21f22 DL |
266 | * after-initial |
267 | | *---. octopus-merge | |
268 | | |\ \ \ | |
269 | | | | | * 4 | |
270 | | |_|_|/ | |
271 | |/| | | | |
272 | | | | * 3 | |
273 | | |_|/ | |
274 | |/| | | |
275 | | | * 2 | |
276 | | |/ | |
277 | |/| | |
278 | | * 1 | |
279 | |/ | |
280 | * initial | |
281 | EOF | |
11c21f22 DL |
282 | ' |
283 | ||
284 | test_expect_success 'log --graph with unrelated commit and octopus tip with colors' ' | |
285 | test_config log.graphColors red,green,yellow,blue,magenta,cyan && | |
286 | cat >expect.colors <<-\EOF && | |
287 | * after-initial | |
288 | <RED>|<RESET> *<BLUE>-<RESET><BLUE>-<RESET><MAGENTA>-<RESET><MAGENTA>.<RESET> octopus-merge | |
289 | <RED>|<RESET> <GREEN>|<RESET><YELLOW>\<RESET> <BLUE>\<RESET> <MAGENTA>\<RESET> | |
290 | <RED>|<RESET> <GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 4 | |
291 | <RED>|<RESET> <GREEN>|<RESET><RED>_<RESET><YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>/<RESET> | |
292 | <RED>|<RESET><RED>/<RESET><GREEN>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> | |
293 | <RED>|<RESET> <GREEN>|<RESET> <YELLOW>|<RESET> * 3 | |
294 | <RED>|<RESET> <GREEN>|<RESET><RED>_<RESET><YELLOW>|<RESET><RED>/<RESET> | |
295 | <RED>|<RESET><RED>/<RESET><GREEN>|<RESET> <YELLOW>|<RESET> | |
296 | <RED>|<RESET> <GREEN>|<RESET> * 2 | |
297 | <RED>|<RESET> <GREEN>|<RESET><RED>/<RESET> | |
298 | <RED>|<RESET><RED>/<RESET><GREEN>|<RESET> | |
299 | <RED>|<RESET> * 1 | |
300 | <RED>|<RESET><RED>/<RESET> | |
301 | * initial | |
302 | EOF | |
ffe00557 | 303 | test_cmp_colored_graph after-initial octopus-merge |
11c21f22 DL |
304 | ' |
305 | ||
306 | test_expect_success 'log --graph with unrelated commit and octopus child, no color' ' | |
989eea95 | 307 | test_cmp_graph after-initial after-merge <<-\EOF |
11c21f22 DL |
308 | * after-initial |
309 | | * after-merge | |
310 | | *---. octopus-merge | |
311 | | |\ \ \ | |
312 | | | | | * 4 | |
313 | | |_|_|/ | |
314 | |/| | | | |
315 | | | | * 3 | |
316 | | |_|/ | |
317 | |/| | | |
318 | | | * 2 | |
319 | | |/ | |
320 | |/| | |
321 | | * 1 | |
322 | |/ | |
323 | * initial | |
324 | EOF | |
11c21f22 DL |
325 | ' |
326 | ||
bbb13e81 | 327 | test_expect_success 'log --graph with unrelated commit and octopus child with colors' ' |
11c21f22 DL |
328 | test_config log.graphColors red,green,yellow,blue,magenta,cyan && |
329 | cat >expect.colors <<-\EOF && | |
330 | * after-initial | |
331 | <RED>|<RESET> * after-merge | |
332 | <RED>|<RESET> *<MAGENTA>-<RESET><MAGENTA>-<RESET><CYAN>-<RESET><CYAN>.<RESET> octopus-merge | |
333 | <RED>|<RESET> <YELLOW>|<RESET><BLUE>\<RESET> <MAGENTA>\<RESET> <CYAN>\<RESET> | |
334 | <RED>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET> * 4 | |
335 | <RED>|<RESET> <YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>_<RESET><MAGENTA>|<RESET><RED>/<RESET> | |
336 | <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET> <BLUE>|<RESET> <MAGENTA>|<RESET> | |
337 | <RED>|<RESET> <YELLOW>|<RESET> <BLUE>|<RESET> * 3 | |
338 | <RED>|<RESET> <YELLOW>|<RESET><RED>_<RESET><BLUE>|<RESET><RED>/<RESET> | |
339 | <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET> <BLUE>|<RESET> | |
340 | <RED>|<RESET> <YELLOW>|<RESET> * 2 | |
341 | <RED>|<RESET> <YELLOW>|<RESET><RED>/<RESET> | |
342 | <RED>|<RESET><RED>/<RESET><YELLOW>|<RESET> | |
343 | <RED>|<RESET> * 1 | |
344 | <RED>|<RESET><RED>/<RESET> | |
345 | * initial | |
346 | EOF | |
ffe00557 | 347 | test_cmp_colored_graph after-initial after-merge |
11c21f22 DL |
348 | ' |
349 | ||
04005834 | 350 | test_done |