Mercurial > evolve
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 |