comparison tests/test-evolve-abort-orphan.t @ 3750:85ad555d6ff7

tests: rename test-evolve-abort.t to test-evolve-abort-orphan.t We renamed the test file because it contains all the cases related to orphan resolution. Now we care about divergence resolution too and hence we must have separate specific test files for each type.
author Pulkit Goyal <7895pulkit@gmail.com>
date Wed, 23 May 2018 01:27:13 +0530
parents tests/test-evolve-abort.t@f6979d64b9fb
children b89108d3eca0
comparison
equal deleted inserted replaced
3749:44542ac10170 3750:85ad555d6ff7
1 Tests for the --abort flag for `hg evolve` command while orphan resolution
2 ==========================================================================
3
4 The `--abort` flag aborts the interrupted evolve by undoing all the work which
5 was done during resolution i.e. stripping new changesets created, moving
6 bookmarks back, moving working directory back.
7
8 This test contains cases when `hg evolve` is doing orphan resolution.
9
10 Setup
11 =====
12
13 $ cat >> $HGRCPATH <<EOF
14 > [phases]
15 > publish = False
16 > [alias]
17 > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}"
18 > [extensions]
19 > EOF
20 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
21
22 $ hg init abortrepo
23 $ cd abortrepo
24 $ echo ".*\.orig" > .hgignore
25 $ hg add .hgignore
26 $ hg ci -m "added hgignore"
27 $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
28
29 $ hg glog
30 @ 4:c41c793e0ef1 added d
31 | () draft
32 o 3:ca1b80f7960a added c
33 | () draft
34 o 2:b1661037fa25 added b
35 | () draft
36 o 1:c7586e2a9264 added a
37 | () draft
38 o 0:8fa14d15e168 added hgignore
39 () draft
40
41 Testing --abort when no evolve is interrupted
42 =============================================
43
44 $ hg evolve --abort
45 abort: no interrupted evolve to stop
46 [255]
47
48 Testing with wrong combination of flags
49 =======================================
50
51 $ hg evolve --abort --continue
52 abort: cannot specify both "--abort" and "--continue"
53 [255]
54
55 $ hg evolve --abort --stop
56 abort: cannot specify both "--abort" and "--stop"
57 [255]
58
59 $ hg evolve --abort --rev 3
60 abort: cannot specify both "--rev" and "--abort"
61 [255]
62
63 $ hg evolve --abort --any
64 abort: cannot specify both "--any" and "--abort"
65 [255]
66
67 $ hg evolve --abort --all
68 abort: cannot specify both "--all" and "--abort"
69 [255]
70
71 Normal testingw when no rev was evolved
72 ========================================
73
74 $ hg prev
75 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
76 [3] added c
77
78 $ echo babar > d
79 $ hg add d
80 $ hg amend
81 1 new orphan changesets
82
83 $ hg evolve --all
84 move:[4] added d
85 atop:[5] added c
86 merging d
87 warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
88 evolve failed!
89 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort
90 abort: unresolved merge conflicts (see hg help resolve)
91 [255]
92
93 $ hg evolve --abort
94 evolve aborted
95 working directory is now at e93a9161a274
96
97 $ hg glog
98 @ 5:e93a9161a274 added c
99 | () draft
100 | * 4:c41c793e0ef1 added d
101 | | () draft
102 | x 3:ca1b80f7960a added c
103 |/ () draft
104 o 2:b1661037fa25 added b
105 | () draft
106 o 1:c7586e2a9264 added a
107 | () draft
108 o 0:8fa14d15e168 added hgignore
109 () draft
110
111 $ hg diff
112
113 $ hg status
114
115 cleaning up things for next testing
116
117 $ hg evolve --all
118 move:[4] added d
119 atop:[5] added c
120 merging d
121 warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
122 evolve failed!
123 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort
124 abort: unresolved merge conflicts (see hg help resolve)
125 [255]
126 $ echo foo > d
127 $ hg resolve -m
128 (no more unresolved files)
129 continue: hg evolve --continue
130 $ hg evolve --continue
131 evolving 4:c41c793e0ef1 "added d"
132 working directory is now at e83de241f751
133
134 $ hg up .^^^
135 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
136
137 When there are evolved revisions but on a single branch
138 =======================================================
139
140 $ echo bar > c
141 $ hg add c
142 $ hg amend
143 3 new orphan changesets
144
145 $ hg evolve --all
146 move:[2] added b
147 atop:[7] added a
148 move:[5] added c
149 atop:[8] added b
150 merging c
151 warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
152 evolve failed!
153 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort
154 abort: unresolved merge conflicts (see hg help resolve)
155 [255]
156
157 $ hg glog
158 @ 8:0c41ec482070 added b
159 | () draft
160 o 7:125af0ed8cae added a
161 | () draft
162 | * 6:e83de241f751 added d
163 | | () draft
164 | * 5:e93a9161a274 added c
165 | | () draft
166 | x 2:b1661037fa25 added b
167 | | () draft
168 | x 1:c7586e2a9264 added a
169 |/ () draft
170 o 0:8fa14d15e168 added hgignore
171 () draft
172
173 $ hg evolve --abort
174 1 new orphan changesets
175 evolve aborted
176 working directory is now at 125af0ed8cae
177
178 $ hg glog
179 @ 7:125af0ed8cae added a
180 | () draft
181 | * 6:e83de241f751 added d
182 | | () draft
183 | * 5:e93a9161a274 added c
184 | | () draft
185 | * 2:b1661037fa25 added b
186 | | () draft
187 | x 1:c7586e2a9264 added a
188 |/ () draft
189 o 0:8fa14d15e168 added hgignore
190 () draft
191
192 $ cd ..
193
194 Testing when evolved revs are on multiple branches
195 ==================================================
196
197 $ hg init repotwo
198 $ cd repotwo
199 $ echo ".*\.orig" > .hgignore
200 $ hg add .hgignore
201 $ hg ci -m "added hgignore"
202 $ echo a > a
203 $ hg ci -Aqm "added a"
204 $ for ch in b c; do echo $ch > $ch; hg add $ch; hg ci -m "added "$ch; done;
205 $ hg up .^^
206 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
207 $ for ch in c d; do echo $ ch > $ch; hg add $ch; hg ci -m "added "$ch; done;
208 created new head
209 $ hg up .^^
210 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
211 $ echo foo > a
212 $ hg ci -m "foo to a"
213 created new head
214
215 $ hg glog
216 @ 6:8f20d4390c21 foo to a
217 | () draft
218 | o 5:bcb1c47f8520 added d
219 | | () draft
220 | o 4:86d2603075a3 added c
221 |/ () draft
222 | o 3:17509928e5bf added c
223 | | () draft
224 | o 2:9f0c80a55ddc added b
225 |/ () draft
226 o 1:2f913b0c9220 added a
227 | () draft
228 o 0:8fa14d15e168 added hgignore
229 () draft
230
231 $ hg prev
232 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
233 [1] added a
234 $ echo aa > a
235 $ hg amend
236 5 new orphan changesets
237
238 $ hg evolve --all
239 move:[2] added b
240 atop:[7] added a
241 move:[4] added c
242 atop:[7] added a
243 move:[6] foo to a
244 atop:[7] added a
245 merging a
246 warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
247 evolve failed!
248 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort
249 abort: unresolved merge conflicts (see hg help resolve)
250 [255]
251
252 $ hg glog
253 o 9:7f8e8bd9f0b6 added c
254 | () draft
255 | o 8:db3b42ef4da7 added b
256 |/ () draft
257 @ 7:807e8e2ca559 added a
258 | () draft
259 | * 6:8f20d4390c21 foo to a
260 | | () draft
261 | | * 5:bcb1c47f8520 added d
262 | | | () draft
263 | | x 4:86d2603075a3 added c
264 | |/ () draft
265 | | * 3:17509928e5bf added c
266 | | | () draft
267 | | x 2:9f0c80a55ddc added b
268 | |/ () draft
269 | x 1:2f913b0c9220 added a
270 |/ () draft
271 o 0:8fa14d15e168 added hgignore
272 () draft
273
274 $ hg evolve --abort
275 2 new orphan changesets
276 evolve aborted
277 working directory is now at 807e8e2ca559
278
279 $ hg glog
280 @ 7:807e8e2ca559 added a
281 | () draft
282 | * 6:8f20d4390c21 foo to a
283 | | () draft
284 | | * 5:bcb1c47f8520 added d
285 | | | () draft
286 | | * 4:86d2603075a3 added c
287 | |/ () draft
288 | | * 3:17509928e5bf added c
289 | | | () draft
290 | | * 2:9f0c80a55ddc added b
291 | |/ () draft
292 | x 1:2f913b0c9220 added a
293 |/ () draft
294 o 0:8fa14d15e168 added hgignore
295 () draft
296
297 $ hg status
298
299 $ hg diff
300
301 Testing when user created a new changesets on top of evolved revisions
302 ======================================================================
303
304 $ hg evolve --all
305 move:[2] added b
306 atop:[7] added a
307 move:[4] added c
308 atop:[7] added a
309 move:[6] foo to a
310 atop:[7] added a
311 merging a
312 warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
313 evolve failed!
314 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort
315 abort: unresolved merge conflicts (see hg help resolve)
316 [255]
317 $ hg glog
318 o 9:7f8e8bd9f0b6 added c
319 | () draft
320 | o 8:db3b42ef4da7 added b
321 |/ () draft
322 @ 7:807e8e2ca559 added a
323 | () draft
324 | * 6:8f20d4390c21 foo to a
325 | | () draft
326 | | * 5:bcb1c47f8520 added d
327 | | | () draft
328 | | x 4:86d2603075a3 added c
329 | |/ () draft
330 | | * 3:17509928e5bf added c
331 | | | () draft
332 | | x 2:9f0c80a55ddc added b
333 | |/ () draft
334 | x 1:2f913b0c9220 added a
335 |/ () draft
336 o 0:8fa14d15e168 added hgignore
337 () draft
338
339 $ echo foo > a
340 $ hg resolve -m
341 (no more unresolved files)
342 continue: hg evolve --continue
343
344 $ cd ..
345 $ hg init clonerepo
346 $ cd repotwo
347 $ hg push ../clonerepo --force
348 pushing to ../clonerepo
349 searching for changes
350 adding changesets
351 adding manifests
352 adding file changes
353 added 10 changesets with 8 changes to 5 files (+4 heads)
354 3 new obsolescence markers
355 3 new orphan changesets
356 $ cd ../clonerepo
357 $ hg up 7f8e8bd9f0b6
358 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
359 $ echo bar > bar
360 $ hg add bar
361 $ hg ci -m "made an new commit on evolved rev"
362
363 $ hg push ../repotwo --force
364 pushing to ../repotwo
365 searching for changes
366 adding changesets
367 adding manifests
368 adding file changes
369 added 1 changesets with 1 changes to 1 files
370 $ cd ../repotwo
371 $ hg evolve --abort
372 warning: new changesets detected on destination branch
373 abort: unable to abort interrupted evolve, use 'hg evolve --stop' to stop evolve
374 [255]
375
376 $ hg evolve --stop
377 stopped the interrupted evolve
378 working directory is now at 807e8e2ca559
379
380 Testing when the evolved revision turned public due to some other user actions
381 ==============================================================================
382
383 $ hg evolve --all
384 move:[3] added c
385 atop:[8] added b
386 move:[5] added d
387 atop:[9] added c
388 move:[6] foo to a
389 atop:[7] added a
390 merging a
391 warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
392 evolve failed!
393 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort
394 abort: unresolved merge conflicts (see hg help resolve)
395 [255]
396
397 $ hg glog
398 o 12:1c476940790a added d
399 | () draft
400 | o 11:c10a55eb0cc6 added c
401 | | () draft
402 +---o 10:48eca1ed5478 made an new commit on evolved rev
403 | | () draft
404 o | 9:7f8e8bd9f0b6 added c
405 | | () draft
406 | o 8:db3b42ef4da7 added b
407 |/ () draft
408 @ 7:807e8e2ca559 added a
409 | () draft
410 | * 6:8f20d4390c21 foo to a
411 | | () draft
412 | x 1:2f913b0c9220 added a
413 |/ () draft
414 o 0:8fa14d15e168 added hgignore
415 () draft
416
417 $ hg phase -r 1c476940790a --public
418
419 $ hg evolve --abort
420 cannot clean up public changesets: 1c476940790a
421 abort: unable to abort interrupted evolve, use 'hg evolve --stop' to stop evolve
422 [255]
423
424 $ hg evolve --stop
425 stopped the interrupted evolve
426 working directory is now at 807e8e2ca559
427
428 $ cd ..
429
430 Testing that bookmark should be moved back when doing `hg evolve --abort`
431 =========================================================================
432
433 $ hg init repothree
434 $ cd repothree
435 $ echo ".*\.orig" > .hgignore
436 $ hg add .hgignore
437 $ hg ci -m "added hgignore"
438 $ for ch in a b c; do echo $ch > $ch; hg add $ch; hg ci -m "added "$ch; done;
439
440 $ hg up .^
441 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
442 $ hg bookmark bm1
443 $ hg up .^
444 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
445 (leaving bookmark bm1)
446 $ echo foo > c
447 $ hg add c
448 $ hg amend
449 2 new orphan changesets
450
451 $ hg glog
452 @ 4:a0086c17bfc7 added a
453 | () draft
454 | * 3:17509928e5bf added c
455 | | () draft
456 | * 2:9f0c80a55ddc added b
457 | | (bm1) draft
458 | x 1:2f913b0c9220 added a
459 |/ () draft
460 o 0:8fa14d15e168 added hgignore
461 () draft
462
463 $ hg evolve --all
464 move:[2] added b
465 atop:[4] added a
466 move:[3] added c
467 atop:[5] added b
468 merging c
469 warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
470 evolve failed!
471 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort
472 abort: unresolved merge conflicts (see hg help resolve)
473 [255]
474
475 $ hg glog
476 @ 5:c1f4718020e3 added b
477 | (bm1) draft
478 o 4:a0086c17bfc7 added a
479 | () draft
480 | * 3:17509928e5bf added c
481 | | () draft
482 | x 2:9f0c80a55ddc added b
483 | | () draft
484 | x 1:2f913b0c9220 added a
485 |/ () draft
486 o 0:8fa14d15e168 added hgignore
487 () draft
488
489 $ hg evolve --abort
490 1 new orphan changesets
491 evolve aborted
492 working directory is now at a0086c17bfc7
493
494 $ hg glog
495 @ 4:a0086c17bfc7 added a
496 | () draft
497 | * 3:17509928e5bf added c
498 | | () draft
499 | * 2:9f0c80a55ddc added b
500 | | (bm1) draft
501 | x 1:2f913b0c9220 added a
502 |/ () draft
503 o 0:8fa14d15e168 added hgignore
504 () draft