|
1 ================================================================= |
|
2 Test automatic unstability resolution for multiple advanced cases |
|
3 ================================================================= |
|
4 |
|
5 There are dedicated test case for each instability, but this file check some |
|
6 basic case for each type. |
|
7 |
|
8 XXX dispatching each these test case in appropriate file would make sense. |
|
9 |
|
10 $ cat >> $HGRCPATH <<EOF |
|
11 > [defaults] |
|
12 > amend=-d "0 0" |
|
13 > [extensions] |
|
14 > hgext.rebase= |
|
15 > EOF |
|
16 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH |
|
17 |
|
18 $ glog() { |
|
19 > hg log -G --template \ |
|
20 > '{rev}:{node|short}@{branch}({phase}) bk:[{bookmarks}] {desc|firstline}\n' "$@" |
|
21 > } |
|
22 |
|
23 Test evolve removing the orphan changeset being evolved |
|
24 |
|
25 $ hg init empty |
|
26 $ cd empty |
|
27 $ echo a > a |
|
28 $ hg ci -Am adda a |
|
29 $ echo b > b |
|
30 $ hg ci -Am addb b |
|
31 $ echo a >> a |
|
32 $ hg ci -m changea |
|
33 $ hg bookmark changea |
|
34 $ hg up 1 |
|
35 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
36 (leaving bookmark changea) |
|
37 $ echo a >> a |
|
38 $ hg amend -m changea |
|
39 1 new orphan changesets |
|
40 $ hg evolve -v --confirm |
|
41 move:[2] changea |
|
42 atop:[3] changea |
|
43 perform evolve? [Ny] n |
|
44 abort: evolve aborted by user |
|
45 [255] |
|
46 $ echo y | hg evolve -v --confirm --config ui.interactive=True |
|
47 move:[2] changea |
|
48 atop:[3] changea |
|
49 perform evolve? [Ny] y |
|
50 hg rebase -r cce2c55b8965 -d fb9d051ec0a4 |
|
51 resolving manifests |
|
52 evolution of 2:cce2c55b8965 created no changes to commit |
|
53 |
|
54 $ glog --hidden |
|
55 @ 3:fb9d051ec0a4@default(draft) bk:[changea] changea |
|
56 | |
|
57 | x 2:cce2c55b8965@default(draft) bk:[] changea |
|
58 | | |
|
59 | x 1:102a90ea7b4a@default(draft) bk:[] addb |
|
60 |/ |
|
61 o 0:07f494440405@default(draft) bk:[] adda |
|
62 |
|
63 $ hg debugobsolete |
|
64 102a90ea7b4a3361e4082ed620918c261189a36a fb9d051ec0a450a4aa2ffc8c324979832ef88065 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'} |
|
65 cce2c55b896511e0b6e04173c9450ba822ebc740 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'} |
|
66 |
|
67 Test evolve of orphan that run into conflict |
|
68 |
|
69 $ ls |
|
70 a |
|
71 b |
|
72 $ hg pdiff a |
|
73 diff -r 07f494440405 a |
|
74 --- a/a Thu Jan 01 00:00:00 1970 +0000 |
|
75 +++ b/a Thu Jan 01 00:00:00 1970 +0000 |
|
76 @@ -1,1 +1,2 @@ |
|
77 a |
|
78 +a |
|
79 $ echo 'newer a' >> a |
|
80 $ hg ci -m 'newer a' |
|
81 $ hg gdown |
|
82 gdown have been deprecated in favor of previous |
|
83 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
84 [3] changea |
|
85 $ echo 'a' > a |
|
86 $ hg amend |
|
87 1 new orphan changesets |
|
88 $ hg evolve |
|
89 move:[4] newer a |
|
90 atop:[5] changea |
|
91 merging a |
|
92 warning: conflicts while merging a! (edit, then use 'hg resolve --mark') |
|
93 fix conflicts and see `hg help evolve.interrupted` |
|
94 [1] |
|
95 $ hg revert -r "orphan()" a |
|
96 $ hg diff |
|
97 diff -r 66719795a494 a |
|
98 --- a/a Thu Jan 01 00:00:00 1970 +0000 |
|
99 +++ b/a Thu Jan 01 00:00:00 1970 +0000 |
|
100 @@ -1,1 +1,3 @@ |
|
101 a |
|
102 +a |
|
103 +newer a |
|
104 $ hg evolve --continue |
|
105 abort: unresolved merge conflicts (see 'hg help resolve') |
|
106 [255] |
|
107 $ hg resolve -m a |
|
108 (no more unresolved files) |
|
109 continue: hg evolve --continue |
|
110 $ hg evolve --continue |
|
111 evolving 4:3655f0f50885 "newer a" |
|
112 working directory is now at 1cf0aacfd363 |
|
113 |
|
114 Stabilize phase-divergent changesets with a different parent |
|
115 ============================================================ |
|
116 |
|
117 (the same-parent case is handled in test-evolve.t) |
|
118 |
|
119 $ glog |
|
120 @ 6:1cf0aacfd363@default(draft) bk:[] newer a |
|
121 | |
|
122 o 5:66719795a494@default(draft) bk:[changea] changea |
|
123 | |
|
124 o 0:07f494440405@default(draft) bk:[] adda |
|
125 |
|
126 |
|
127 Add another commit |
|
128 |
|
129 $ hg gdown |
|
130 gdown have been deprecated in favor of previous |
|
131 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
132 [5] changea |
|
133 $ echo 'c' > c |
|
134 $ hg add c |
|
135 $ hg commit -m 'add c' |
|
136 created new head |
|
137 |
|
138 Get a successors of 8 on it |
|
139 |
|
140 $ hg pick 1cf0aacfd363 |
|
141 picking 6:1cf0aacfd363 "newer a" |
|
142 |
|
143 Add real change to the successors |
|
144 |
|
145 $ echo 'babar' >> a |
|
146 $ hg amend |
|
147 |
|
148 Make precursors public |
|
149 |
|
150 $ hg phase --hidden --public 1cf0aacfd363 |
|
151 1 new phase-divergent changesets |
|
152 $ glog |
|
153 @ 9:99c21c89bcef@default(draft) bk:[] newer a |
|
154 | |
|
155 o 7:7bc2f5967f5e@default(draft) bk:[] add c |
|
156 | |
|
157 | o 6:1cf0aacfd363@default(public) bk:[] newer a |
|
158 |/ |
|
159 o 5:66719795a494@default(public) bk:[changea] changea |
|
160 | |
|
161 o 0:07f494440405@default(public) bk:[] adda |
|
162 |
|
163 |
|
164 Stabilize! |
|
165 |
|
166 $ hg evolve --any --dry-run --phase-divergent |
|
167 recreate:[9] newer a |
|
168 atop:[6] newer a |
|
169 hg rebase --rev 99c21c89bcef --dest 66719795a494; |
|
170 hg update 1cf0aacfd363; |
|
171 hg revert --all --rev 99c21c89bcef; |
|
172 hg commit --msg "phase-divergent update to 99c21c89bcef" |
|
173 $ hg evolve --any --confirm --phase-divergent |
|
174 recreate:[9] newer a |
|
175 atop:[6] newer a |
|
176 perform evolve? [Ny] n |
|
177 abort: evolve aborted by user |
|
178 [255] |
|
179 $ echo y | hg evolve --any --confirm --config ui.interactive=True --phase-divergent |
|
180 recreate:[9] newer a |
|
181 atop:[6] newer a |
|
182 perform evolve? [Ny] y |
|
183 rebasing to destination parent: 66719795a494 |
|
184 committed as 8fc63fe1f297 |
|
185 working directory is now at 8fc63fe1f297 |
|
186 $ glog |
|
187 @ 11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363: |
|
188 | |
|
189 | o 7:7bc2f5967f5e@default(draft) bk:[] add c |
|
190 | | |
|
191 o | 6:1cf0aacfd363@default(public) bk:[] newer a |
|
192 |/ |
|
193 o 5:66719795a494@default(public) bk:[changea] changea |
|
194 | |
|
195 o 0:07f494440405@default(public) bk:[] adda |
|
196 |
|
197 $ hg exp |
|
198 # HG changeset patch |
|
199 # User test |
|
200 # Date 0 0 |
|
201 # Thu Jan 01 00:00:00 1970 +0000 |
|
202 # Node ID 8fc63fe1f297f356d1156bbbbe865b9911efad74 |
|
203 # Parent 1cf0aacfd36310b18e403e1594871187e0364a82 |
|
204 phase-divergent update to 1cf0aacfd363: |
|
205 |
|
206 newer a |
|
207 |
|
208 diff -r 1cf0aacfd363 -r 8fc63fe1f297 a |
|
209 --- a/a Thu Jan 01 00:00:00 1970 +0000 |
|
210 +++ b/a Thu Jan 01 00:00:00 1970 +0000 |
|
211 @@ -1,3 +1,4 @@ |
|
212 a |
|
213 a |
|
214 newer a |
|
215 +babar |
|
216 |
|
217 Stabilize content-divergent changesets with same parent |
|
218 ======================================================= |
|
219 |
|
220 $ rm a.orig |
|
221 $ hg up 7bc2f5967f5e |
|
222 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
223 $ cat << EOF >> a |
|
224 > flore |
|
225 > arthur |
|
226 > zephir |
|
227 > some |
|
228 > less |
|
229 > conflict |
|
230 > EOF |
|
231 $ hg ci -m 'More addition' |
|
232 $ glog |
|
233 @ 12:3932c176bbaa@default(draft) bk:[] More addition |
|
234 | |
|
235 | o 11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363: |
|
236 | | |
|
237 o | 7:7bc2f5967f5e@default(draft) bk:[] add c |
|
238 | | |
|
239 | o 6:1cf0aacfd363@default(public) bk:[] newer a |
|
240 |/ |
|
241 o 5:66719795a494@default(public) bk:[changea] changea |
|
242 | |
|
243 o 0:07f494440405@default(public) bk:[] adda |
|
244 |
|
245 $ echo 'babar' >> a |
|
246 $ hg amend |
|
247 $ hg up --hidden 3932c176bbaa |
|
248 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
249 updated to hidden changeset 3932c176bbaa |
|
250 (hidden revision '3932c176bbaa' was rewritten as: d2f173e25686) |
|
251 working directory parent is obsolete! (3932c176bbaa) |
|
252 (use 'hg evolve' to update to its successor: d2f173e25686) |
|
253 $ mv a a.old |
|
254 $ echo 'jungle' > a |
|
255 $ cat a.old >> a |
|
256 $ rm a.old |
|
257 $ hg amend |
|
258 2 new content-divergent changesets |
|
259 $ glog |
|
260 @ 14:eacc9c8240fe@default(draft) bk:[] More addition |
|
261 | |
|
262 | * 13:d2f173e25686@default(draft) bk:[] More addition |
|
263 |/ |
|
264 | o 11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363: |
|
265 | | |
|
266 o | 7:7bc2f5967f5e@default(draft) bk:[] add c |
|
267 | | |
|
268 | o 6:1cf0aacfd363@default(public) bk:[] newer a |
|
269 |/ |
|
270 o 5:66719795a494@default(public) bk:[changea] changea |
|
271 | |
|
272 o 0:07f494440405@default(public) bk:[] adda |
|
273 |
|
274 |
|
275 Stabilize it |
|
276 |
|
277 $ hg evolve -qn --confirm --content-divergent |
|
278 merge:[14] More addition |
|
279 with: [13] More addition |
|
280 base: [12] More addition |
|
281 perform evolve? [Ny] n |
|
282 abort: evolve aborted by user |
|
283 [255] |
|
284 $ echo y | hg evolve -qn --confirm --config ui.interactive=True --content-divergent |
|
285 merge:[14] More addition |
|
286 with: [13] More addition |
|
287 base: [12] More addition |
|
288 perform evolve? [Ny] y |
|
289 hg update -c eacc9c8240fe && |
|
290 hg merge d2f173e25686 && |
|
291 hg commit -m "auto merge resolving conflict between eacc9c8240fe and d2f173e25686"&& |
|
292 hg up -C 3932c176bbaa && |
|
293 hg revert --all --rev tip && |
|
294 hg commit -m "`hg log -r eacc9c8240fe --template={desc}`"; |
|
295 $ hg evolve -v --content-divergent |
|
296 merge:[14] More addition |
|
297 with: [13] More addition |
|
298 base: [12] More addition |
|
299 merging "other" content-divergent changeset 'd2f173e25686' |
|
300 resolving manifests |
|
301 merging a |
|
302 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
303 committing files: |
|
304 a |
|
305 committing manifest |
|
306 committing changelog |
|
307 working directory is now at 4d6ed26797bc |
|
308 $ hg st |
|
309 $ glog |
|
310 @ 15:4d6ed26797bc@default(draft) bk:[] More addition |
|
311 | |
|
312 | o 11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363: |
|
313 | | |
|
314 o | 7:7bc2f5967f5e@default(draft) bk:[] add c |
|
315 | | |
|
316 | o 6:1cf0aacfd363@default(public) bk:[] newer a |
|
317 |/ |
|
318 o 5:66719795a494@default(public) bk:[changea] changea |
|
319 | |
|
320 o 0:07f494440405@default(public) bk:[] adda |
|
321 |
|
322 $ hg summary |
|
323 parent: 15:4d6ed26797bc tip |
|
324 More addition |
|
325 branch: default |
|
326 commit: (clean) |
|
327 update: 2 new changesets, 2 branch heads (merge) |
|
328 phases: 3 draft |
|
329 $ hg export . |
|
330 # HG changeset patch |
|
331 # User test |
|
332 # Date 0 0 |
|
333 # Thu Jan 01 00:00:00 1970 +0000 |
|
334 # Node ID 4d6ed26797bc392c0099e48402a5134e669f1a60 |
|
335 # Parent 7bc2f5967f5e4ed277f60a89b7b04cc5d6407ced |
|
336 More addition |
|
337 |
|
338 diff -r 7bc2f5967f5e -r 4d6ed26797bc a |
|
339 --- a/a Thu Jan 01 00:00:00 1970 +0000 |
|
340 +++ b/a Thu Jan 01 00:00:00 1970 +0000 |
|
341 @@ -1,1 +1,9 @@ |
|
342 +jungle |
|
343 a |
|
344 +flore |
|
345 +arthur |
|
346 +zephir |
|
347 +some |
|
348 +less |
|
349 +conflict |
|
350 +babar |
|
351 |
|
352 Check conflict during content-divergence resolution |
|
353 --------------------------------------------------- |
|
354 |
|
355 $ hg up --hidden 3932c176bbaa |
|
356 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
357 updated to hidden changeset 3932c176bbaa |
|
358 (hidden revision '3932c176bbaa' was rewritten as: 4d6ed26797bc) |
|
359 working directory parent is obsolete! (3932c176bbaa) |
|
360 (use 'hg evolve' to update to its successor: 4d6ed26797bc) |
|
361 $ echo 'gotta break' >> a |
|
362 $ hg amend |
|
363 2 new content-divergent changesets |
|
364 |
|
365 # reamend so that the case is not the first precursor. |
|
366 |
|
367 $ hg amend -m "More addition (2)" |
|
368 $ hg phase 'contentdivergent()' |
|
369 15: draft |
|
370 17: draft |
|
371 |
|
372 $ glog |
|
373 @ 17:0b336205a5d0@default(draft) bk:[] More addition (2) |
|
374 | |
|
375 | * 15:4d6ed26797bc@default(draft) bk:[] More addition |
|
376 |/ |
|
377 | o 11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363: |
|
378 | | |
|
379 o | 7:7bc2f5967f5e@default(draft) bk:[] add c |
|
380 | | |
|
381 | o 6:1cf0aacfd363@default(public) bk:[] newer a |
|
382 |/ |
|
383 o 5:66719795a494@default(public) bk:[changea] changea |
|
384 | |
|
385 o 0:07f494440405@default(public) bk:[] adda |
|
386 |
|
387 |
|
388 $ hg evolve -qn --content-divergent |
|
389 hg update -c 0b336205a5d0 && |
|
390 hg merge 4d6ed26797bc && |
|
391 hg commit -m "auto merge resolving conflict between 0b336205a5d0 and 4d6ed26797bc"&& |
|
392 hg up -C 3932c176bbaa && |
|
393 hg revert --all --rev tip && |
|
394 hg commit -m "`hg log -r 0b336205a5d0 --template={desc}`"; |
|
395 $ hg evolve --content-divergent |
|
396 merge:[17] More addition (2) |
|
397 with: [15] More addition |
|
398 base: [12] More addition |
|
399 merging "other" content-divergent changeset '4d6ed26797bc' |
|
400 merging a |
|
401 warning: conflicts while merging a! (edit, then use 'hg resolve --mark') |
|
402 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
403 fix conflicts and see `hg help evolve.interrupted` |
|
404 [1] |
|
405 |
|
406 $ cat > a <<EOF |
|
407 > jungle |
|
408 > a |
|
409 > flore |
|
410 > arthur |
|
411 > zephir |
|
412 > some |
|
413 > less |
|
414 > conflict |
|
415 > babar |
|
416 > EOF |
|
417 |
|
418 $ hg resolve -m |
|
419 (no more unresolved files) |
|
420 continue: hg evolve --continue |
|
421 $ hg evolve --continue |
|
422 working directory is now at e8746835a2a1 |
|
423 $ glog |
|
424 @ 18:e8746835a2a1@default(draft) bk:[] More addition (2) |
|
425 | |
|
426 | o 11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363: |
|
427 | | |
|
428 o | 7:7bc2f5967f5e@default(draft) bk:[] add c |
|
429 | | |
|
430 | o 6:1cf0aacfd363@default(public) bk:[] newer a |
|
431 |/ |
|
432 o 5:66719795a494@default(public) bk:[changea] changea |
|
433 | |
|
434 o 0:07f494440405@default(public) bk:[] adda |
|
435 |
|
436 $ hg exp |
|
437 # HG changeset patch |
|
438 # User test |
|
439 # Date 0 0 |
|
440 # Thu Jan 01 00:00:00 1970 +0000 |
|
441 # Node ID e8746835a2a13122bc8c0ed84fe4ee35649af25d |
|
442 # Parent 7bc2f5967f5e4ed277f60a89b7b04cc5d6407ced |
|
443 More addition (2) |
|
444 |
|
445 diff -r 7bc2f5967f5e -r e8746835a2a1 a |
|
446 --- a/a Thu Jan 01 00:00:00 1970 +0000 |
|
447 +++ b/a Thu Jan 01 00:00:00 1970 +0000 |
|
448 @@ -1,1 +1,9 @@ |
|
449 +jungle |
|
450 a |
|
451 +flore |
|
452 +arthur |
|
453 +zephir |
|
454 +some |
|
455 +less |
|
456 +conflict |
|
457 +babar |