Mercurial > hg
comparison tests/test-rebase-detach.t @ 33560:d4df141f90d1
tests: rewrite test-rebase-detach.t using drawdag
This makes it much clearer because each test case can have exactly the
graph it wants (no extra cruft just because other tests want it).
Differential Revision: https://phab.mercurial-scm.org/D94
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 14 Jul 2017 21:44:29 -0700 |
parents | 094634292d34 |
children | 469b06b4c3ca |
comparison
equal
deleted
inserted
replaced
33559:094634292d34 | 33560:d4df141f90d1 |
---|---|
2 > [extensions] | 2 > [extensions] |
3 > rebase= | 3 > rebase= |
4 > | 4 > |
5 > [alias] | 5 > [alias] |
6 > tglog = log -G --template "{rev}: '{desc}'\n" | 6 > tglog = log -G --template "{rev}: '{desc}'\n" |
7 > EOF | 7 > |
8 | 8 > [extensions] |
9 | 9 > drawdag=$TESTDIR/drawdag.py |
10 $ hg init a | 10 > EOF |
11 $ cd a | 11 |
12 $ hg unbundle "$TESTDIR/bundles/rebase.hg" | 12 Rebasing D onto B detaching from C (one commit): |
13 adding changesets | 13 |
14 adding manifests | 14 $ hg init a1 |
15 adding file changes | |
16 added 8 changesets with 7 changes to 7 files (+2 heads) | |
17 (run 'hg heads' to see heads, 'hg merge' to merge) | |
18 $ hg up tip | |
19 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
20 | |
21 $ cd .. | |
22 | |
23 | |
24 Rebasing D onto H detaching from C: | |
25 | |
26 $ hg clone -q -u . a a1 | |
27 $ cd a1 | 15 $ cd a1 |
28 | 16 |
29 $ hg tglog | 17 $ hg debugdrawdag <<EOF |
30 @ 7: 'H' | 18 > D |
31 | | 19 > | |
32 | o 6: 'G' | 20 > C B |
33 |/| | 21 > |/ |
34 o | 5: 'F' | 22 > A |
35 | | | 23 > EOF |
36 | o 4: 'E' | 24 $ hg phase --force --secret D |
37 |/ | 25 |
38 | o 3: 'D' | 26 $ hg rebase -s D -d B |
39 | | | 27 rebasing 3:e7b3f00ed42e "D" (D tip) |
40 | o 2: 'C' | 28 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/e7b3f00ed42e-6f368371-rebase.hg (glob) |
41 | | | |
42 | o 1: 'B' | |
43 |/ | |
44 o 0: 'A' | |
45 | |
46 $ hg phase --force --secret 3 | |
47 $ hg rebase -s 3 -d 7 | |
48 rebasing 3:32af7686d403 "D" | |
49 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/32af7686d403-6f7dface-rebase.hg (glob) | |
50 | 29 |
51 $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n" | 30 $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n" |
52 o 7:secret 'D' | 31 o 3:secret 'D' |
53 | | 32 | |
54 @ 6:draft 'H' | |
55 | | |
56 | o 5:draft 'G' | |
57 |/| | |
58 o | 4:draft 'F' | |
59 | | | |
60 | o 3:draft 'E' | |
61 |/ | |
62 | o 2:draft 'C' | 33 | o 2:draft 'C' |
63 | | | 34 | | |
64 | o 1:draft 'B' | 35 o | 1:draft 'B' |
65 |/ | 36 |/ |
66 o 0:draft 'A' | 37 o 0:draft 'A' |
67 | 38 |
68 $ hg manifest --rev tip | 39 $ hg manifest --rev tip |
69 A | 40 A |
41 B | |
70 D | 42 D |
71 F | 43 |
72 H | 44 $ cd .. |
73 | 45 |
74 $ cd .. | 46 |
75 | 47 Rebasing D onto B detaching from C (two commits): |
76 | 48 |
77 Rebasing C onto H detaching from B: | 49 $ hg init a2 |
78 | |
79 $ hg clone -q -u . a a2 | |
80 $ cd a2 | 50 $ cd a2 |
81 | 51 |
82 $ hg tglog | 52 $ hg debugdrawdag <<EOF |
83 @ 7: 'H' | 53 > E |
84 | | 54 > | |
85 | o 6: 'G' | 55 > D |
86 |/| | 56 > | |
87 o | 5: 'F' | 57 > C B |
88 | | | 58 > |/ |
89 | o 4: 'E' | 59 > A |
90 |/ | 60 > EOF |
91 | o 3: 'D' | 61 |
92 | | | 62 $ hg rebase -s D -d B |
63 rebasing 3:e7b3f00ed42e "D" (D) | |
64 rebasing 4:69a34c08022a "E" (E tip) | |
65 saved backup bundle to $TESTTMP/a2/.hg/strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg (glob) | |
66 | |
67 $ hg tglog | |
68 o 4: 'E' | |
69 | | |
70 o 3: 'D' | |
71 | | |
93 | o 2: 'C' | 72 | o 2: 'C' |
94 | | | 73 | | |
95 | o 1: 'B' | 74 o | 1: 'B' |
96 |/ | |
97 o 0: 'A' | |
98 | |
99 $ hg rebase -s 2 -d 7 | |
100 rebasing 2:5fddd98957c8 "C" | |
101 rebasing 3:32af7686d403 "D" | |
102 saved backup bundle to $TESTTMP/a2/.hg/strip-backup/5fddd98957c8-f9244fa1-rebase.hg (glob) | |
103 | |
104 $ hg tglog | |
105 o 7: 'D' | |
106 | | |
107 o 6: 'C' | |
108 | | |
109 @ 5: 'H' | |
110 | | |
111 | o 4: 'G' | |
112 |/| | |
113 o | 3: 'F' | |
114 | | | |
115 | o 2: 'E' | |
116 |/ | |
117 | o 1: 'B' | |
118 |/ | 75 |/ |
119 o 0: 'A' | 76 o 0: 'A' |
120 | 77 |
121 $ hg manifest --rev tip | 78 $ hg manifest --rev tip |
122 A | 79 A |
123 C | 80 B |
124 D | 81 D |
125 F | 82 E |
126 H | 83 |
127 | 84 $ cd .. |
128 $ cd .. | 85 |
129 | 86 Rebasing C onto B using detach (same as not using it): |
130 | 87 |
131 Rebasing B onto H using detach (same as not using it): | 88 $ hg init a3 |
132 | |
133 $ hg clone -q -u . a a3 | |
134 $ cd a3 | 89 $ cd a3 |
135 | 90 |
136 $ hg tglog | 91 $ hg debugdrawdag <<EOF |
137 @ 7: 'H' | 92 > D |
138 | | 93 > | |
139 | o 6: 'G' | 94 > C B |
140 |/| | 95 > |/ |
141 o | 5: 'F' | 96 > A |
142 | | | 97 > EOF |
143 | o 4: 'E' | 98 |
144 |/ | 99 $ hg rebase -s C -d B |
145 | o 3: 'D' | 100 rebasing 2:dc0947a82db8 "C" (C) |
146 | | | 101 rebasing 3:e7b3f00ed42e "D" (D tip) |
147 | o 2: 'C' | 102 saved backup bundle to $TESTTMP/a3/.hg/strip-backup/dc0947a82db8-b8481714-rebase.hg (glob) |
148 | | | 103 |
149 | o 1: 'B' | 104 $ hg tglog |
150 |/ | 105 o 3: 'D' |
151 o 0: 'A' | 106 | |
152 | 107 o 2: 'C' |
153 $ hg rebase -s 1 -d 7 | 108 | |
154 rebasing 1:42ccdea3bb16 "B" | 109 o 1: 'B' |
155 rebasing 2:5fddd98957c8 "C" | 110 | |
156 rebasing 3:32af7686d403 "D" | |
157 saved backup bundle to $TESTTMP/a3/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg (glob) | |
158 | |
159 $ hg tglog | |
160 o 7: 'D' | |
161 | | |
162 o 6: 'C' | |
163 | | |
164 o 5: 'B' | |
165 | | |
166 @ 4: 'H' | |
167 | | |
168 | o 3: 'G' | |
169 |/| | |
170 o | 2: 'F' | |
171 | | | |
172 | o 1: 'E' | |
173 |/ | |
174 o 0: 'A' | 111 o 0: 'A' |
175 | 112 |
176 $ hg manifest --rev tip | 113 $ hg manifest --rev tip |
177 A | 114 A |
178 B | 115 B |
179 C | 116 C |
180 D | 117 D |
181 F | 118 |
182 H | 119 $ cd .. |
183 | 120 |
184 $ cd .. | 121 |
185 | 122 Rebasing D onto B detaching from C and collapsing: |
186 | 123 |
187 Rebasing C onto H detaching from B and collapsing: | 124 $ hg init a4 |
188 | |
189 $ hg clone -q -u . a a4 | |
190 $ cd a4 | 125 $ cd a4 |
191 $ hg phase --force --secret 3 | 126 |
192 | 127 $ hg debugdrawdag <<EOF |
193 $ hg tglog | 128 > E |
194 @ 7: 'H' | 129 > | |
195 | | 130 > D |
196 | o 6: 'G' | 131 > | |
197 |/| | 132 > C B |
198 o | 5: 'F' | 133 > |/ |
199 | | | 134 > A |
200 | o 4: 'E' | 135 > EOF |
201 |/ | 136 $ hg phase --force --secret E |
202 | o 3: 'D' | 137 |
203 | | | 138 $ hg rebase --collapse -s D -d B |
204 | o 2: 'C' | 139 rebasing 3:e7b3f00ed42e "D" (D) |
205 | | | 140 rebasing 4:69a34c08022a "E" (E tip) |
206 | o 1: 'B' | 141 saved backup bundle to $TESTTMP/a4/.hg/strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg (glob) |
207 |/ | |
208 o 0: 'A' | |
209 | |
210 $ hg rebase --collapse -s 2 -d 7 | |
211 rebasing 2:5fddd98957c8 "C" | |
212 rebasing 3:32af7686d403 "D" | |
213 saved backup bundle to $TESTTMP/a4/.hg/strip-backup/5fddd98957c8-f9244fa1-rebase.hg (glob) | |
214 | 142 |
215 $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n" | 143 $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n" |
216 o 6:secret 'Collapsed revision | 144 o 3:secret 'Collapsed revision |
217 | * C | 145 | * D |
218 | * D' | 146 | * E' |
219 @ 5:draft 'H' | 147 | o 2:draft 'C' |
220 | | 148 | | |
221 | o 4:draft 'G' | 149 o | 1:draft 'B' |
222 |/| | |
223 o | 3:draft 'F' | |
224 | | | |
225 | o 2:draft 'E' | |
226 |/ | |
227 | o 1:draft 'B' | |
228 |/ | 150 |/ |
229 o 0:draft 'A' | 151 o 0:draft 'A' |
230 | 152 |
231 $ hg manifest --rev tip | 153 $ hg manifest --rev tip |
232 A | 154 A |
233 C | 155 B |
234 D | 156 D |
235 F | 157 E |
236 H | |
237 | 158 |
238 $ cd .. | 159 $ cd .. |
239 | 160 |
240 Rebasing across null as ancestor | 161 Rebasing across null as ancestor |
241 $ hg clone -q -U a a5 | 162 $ hg init a5 |
242 | |
243 $ cd a5 | 163 $ cd a5 |
244 | 164 |
245 $ echo x > x | 165 $ hg debugdrawdag <<EOF |
246 | 166 > E |
247 $ hg add x | 167 > | |
248 | 168 > D |
249 $ hg ci -m "extra branch" | 169 > | |
250 created new head | 170 > C |
251 | 171 > | |
252 $ hg tglog | 172 > A B |
253 @ 8: 'extra branch' | 173 > EOF |
254 | 174 |
255 o 7: 'H' | 175 $ hg rebase -s C -d B |
256 | | 176 rebasing 2:dc0947a82db8 "C" (C) |
257 | o 6: 'G' | 177 rebasing 3:e7b3f00ed42e "D" (D) |
258 |/| | 178 rebasing 4:69a34c08022a "E" (E tip) |
259 o | 5: 'F' | 179 saved backup bundle to $TESTTMP/a5/.hg/strip-backup/dc0947a82db8-3eefec98-rebase.hg (glob) |
260 | | | 180 |
261 | o 4: 'E' | 181 $ hg tglog |
262 |/ | 182 o 4: 'E' |
263 | o 3: 'D' | 183 | |
264 | | | 184 o 3: 'D' |
185 | | |
186 o 2: 'C' | |
187 | | |
188 o 1: 'B' | |
189 | |
190 o 0: 'A' | |
191 | |
192 $ hg rebase -d 1 -s 3 | |
193 rebasing 3:e9153d36a1af "D" | |
194 rebasing 4:e3d0c70d606d "E" (tip) | |
195 saved backup bundle to $TESTTMP/a5/.hg/strip-backup/e9153d36a1af-db7388ed-rebase.hg (glob) | |
196 $ hg tglog | |
197 o 4: 'E' | |
198 | | |
199 o 3: 'D' | |
200 | | |
265 | o 2: 'C' | 201 | o 2: 'C' |
266 | | | 202 |/ |
267 | o 1: 'B' | 203 o 1: 'B' |
268 |/ | 204 |
269 o 0: 'A' | |
270 | |
271 $ hg rebase -s 1 -d tip | |
272 rebasing 1:42ccdea3bb16 "B" | |
273 rebasing 2:5fddd98957c8 "C" | |
274 rebasing 3:32af7686d403 "D" | |
275 saved backup bundle to $TESTTMP/a5/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg (glob) | |
276 | |
277 $ hg tglog | |
278 o 8: 'D' | |
279 | | |
280 o 7: 'C' | |
281 | | |
282 o 6: 'B' | |
283 | | |
284 @ 5: 'extra branch' | |
285 | |
286 o 4: 'H' | |
287 | | |
288 | o 3: 'G' | |
289 |/| | |
290 o | 2: 'F' | |
291 | | | |
292 | o 1: 'E' | |
293 |/ | |
294 o 0: 'A' | |
295 | |
296 | |
297 $ hg rebase -d 5 -s 7 | |
298 rebasing 7:13547172c9c0 "C" | |
299 rebasing 8:4e27a76c371a "D" (tip) | |
300 saved backup bundle to $TESTTMP/a5/.hg/strip-backup/13547172c9c0-35685ded-rebase.hg (glob) | |
301 $ hg tglog | |
302 o 8: 'D' | |
303 | | |
304 o 7: 'C' | |
305 | | |
306 | o 6: 'B' | |
307 |/ | |
308 @ 5: 'extra branch' | |
309 | |
310 o 4: 'H' | |
311 | | |
312 | o 3: 'G' | |
313 |/| | |
314 o | 2: 'F' | |
315 | | | |
316 | o 1: 'E' | |
317 |/ | |
318 o 0: 'A' | 205 o 0: 'A' |
319 | 206 |
320 $ cd .. | 207 $ cd .. |
321 | 208 |
322 Verify that target is not selected as external rev (issue3085) | 209 Verify that target is not selected as external rev (issue3085) |
323 | 210 |
324 $ hg clone -q -U a a6 | 211 $ hg init a6 |
325 $ cd a6 | 212 $ cd a6 |
326 $ hg up -q 6 | 213 |
214 $ hg debugdrawdag <<EOF | |
215 > H | |
216 > | G | |
217 > |/| | |
218 > F E | |
219 > |/ | |
220 > A | |
221 > EOF | |
222 $ hg up -q G | |
327 | 223 |
328 $ echo "I" >> E | 224 $ echo "I" >> E |
329 $ hg ci -m "I" | 225 $ hg ci -m "I" |
330 $ hg merge 7 | 226 $ hg tag --local I |
227 $ hg merge H | |
331 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 228 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
332 (branch merge, don't forget to commit) | 229 (branch merge, don't forget to commit) |
333 $ hg ci -m "Merge" | 230 $ hg ci -m "Merge" |
334 $ echo "J" >> F | 231 $ echo "J" >> F |
335 $ hg ci -m "J" | 232 $ hg ci -m "J" |
336 | 233 $ hg tglog |
337 $ hg rebase -s 8 -d 7 --collapse --config ui.merge=internal:other | 234 @ 7: 'J' |
338 rebasing 8:9790e768172d "I" | 235 | |
339 rebasing 9:5d7b11f5fb97 "Merge" | 236 o 6: 'Merge' |
340 rebasing 10:9427d4d5af81 "J" (tip) | 237 |\ |
341 saved backup bundle to $TESTTMP/a6/.hg/strip-backup/9790e768172d-c2111e9d-rebase.hg (glob) | 238 | o 5: 'I' |
342 | 239 | | |
343 $ hg tglog | 240 o | 4: 'H' |
344 @ 8: 'Collapsed revision | 241 | | |
242 | o 3: 'G' | |
243 |/| | |
244 o | 2: 'F' | |
245 | | | |
246 | o 1: 'E' | |
247 |/ | |
248 o 0: 'A' | |
249 | |
250 $ hg rebase -s I -d H --collapse --config ui.merge=internal:other | |
251 rebasing 5:b92d164ad3cb "I" (I) | |
252 rebasing 6:0cfbc7e8faaf "Merge" | |
253 rebasing 7:c6aaf0d259c0 "J" (tip) | |
254 saved backup bundle to $TESTTMP/a6/.hg/strip-backup/b92d164ad3cb-88fd7ab7-rebase.hg (glob) | |
255 | |
256 $ hg tglog | |
257 @ 5: 'Collapsed revision | |
345 | * I | 258 | * I |
346 | * Merge | 259 | * Merge |
347 | * J' | 260 | * J' |
348 o 7: 'H' | 261 o 4: 'H' |
349 | | 262 | |
350 | o 6: 'G' | 263 | o 3: 'G' |
351 |/| | 264 |/| |
352 o | 5: 'F' | 265 o | 2: 'F' |
353 | | | 266 | | |
354 | o 4: 'E' | 267 | o 1: 'E' |
355 |/ | |
356 | o 3: 'D' | |
357 | | | |
358 | o 2: 'C' | |
359 | | | |
360 | o 1: 'B' | |
361 |/ | 268 |/ |
362 o 0: 'A' | 269 o 0: 'A' |
363 | 270 |
364 | 271 |
365 $ hg log --rev tip | 272 $ hg log --rev tip |
366 changeset: 8:9472f4b1d736 | 273 changeset: 5:65079693dac4 |
367 tag: tip | 274 tag: tip |
368 user: test | 275 user: test |
369 date: Thu Jan 01 00:00:00 1970 +0000 | 276 date: Thu Jan 01 00:00:00 1970 +0000 |
370 summary: Collapsed revision | 277 summary: Collapsed revision |
371 | 278 |
372 | 279 |
373 $ cd .. | 280 $ cd .. |
374 | 281 |
375 Ensure --continue restores a correct state (issue3046) and phase: | 282 Ensure --continue restores a correct state (issue3046) and phase: |
376 $ hg clone -q a a7 | 283 $ hg init a7 |
377 $ cd a7 | 284 $ cd a7 |
378 $ hg up -q 3 | 285 |
379 $ echo 'H2' > H | 286 $ hg debugdrawdag <<EOF |
380 $ hg ci -A -m 'H2' | 287 > C B |
381 adding H | 288 > |/ |
382 $ hg phase --force --secret 8 | 289 > A |
383 $ hg rebase -s 8 -d 7 --config ui.merge=internal:fail | 290 > EOF |
384 rebasing 8:6215fafa5447 "H2" (tip) | 291 $ hg up -q C |
385 merging H | 292 $ echo 'B2' > B |
386 warning: conflicts while merging H! (edit, then use 'hg resolve --mark') | 293 $ hg ci -A -m 'B2' |
294 adding B | |
295 $ hg phase --force --secret . | |
296 $ hg rebase -s . -d B --config ui.merge=internal:fail | |
297 rebasing 3:17b4880d2402 "B2" (tip) | |
298 merging B | |
299 warning: conflicts while merging B! (edit, then use 'hg resolve --mark') | |
387 unresolved conflicts (see hg resolve, then hg rebase --continue) | 300 unresolved conflicts (see hg resolve, then hg rebase --continue) |
388 [1] | 301 [1] |
389 $ hg resolve --all -t internal:local | 302 $ hg resolve --all -t internal:local |
390 (no more unresolved files) | 303 (no more unresolved files) |
391 continue: hg rebase --continue | 304 continue: hg rebase --continue |
392 $ hg rebase -c | 305 $ hg rebase -c |
393 rebasing 8:6215fafa5447 "H2" (tip) | 306 rebasing 3:17b4880d2402 "B2" (tip) |
394 note: rebase of 8:6215fafa5447 created no changes to commit | 307 note: rebase of 3:17b4880d2402 created no changes to commit |
395 saved backup bundle to $TESTTMP/a7/.hg/strip-backup/6215fafa5447-5804ebd5-rebase.hg (glob) | 308 saved backup bundle to $TESTTMP/a7/.hg/strip-backup/17b4880d2402-1ae1f6cc-rebase.hg (glob) |
396 $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n" | 309 $ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n" |
397 @ 7:draft 'H' | 310 o 2:draft 'C' |
398 | | 311 | |
399 | o 6:draft 'G' | 312 | @ 1:draft 'B' |
400 |/| | |
401 o | 5:draft 'F' | |
402 | | | |
403 | o 4:draft 'E' | |
404 |/ | |
405 | o 3:draft 'D' | |
406 | | | |
407 | o 2:draft 'C' | |
408 | | | |
409 | o 1:draft 'B' | |
410 |/ | 313 |/ |
411 o 0:draft 'A' | 314 o 0:draft 'A' |
412 | 315 |
413 | 316 |
414 $ cd .. | 317 $ cd .. |