1 ** Test for handling of content divergent changesets by `hg evolve` ** |
|
2 ==================================================================== |
|
3 |
|
4 $ cat >> $HGRCPATH <<EOF |
|
5 > [alias] |
|
6 > glog = log -GT "{rev}:{node|short} {desc|firstline}\n ({bookmarks}) [{branch}] {phase}" |
|
7 > [phases] |
|
8 > publish = False |
|
9 > [extensions] |
|
10 > rebase = |
|
11 > EOF |
|
12 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH |
|
13 |
|
14 $ hg init cdiv |
|
15 $ cd cdiv |
|
16 $ echo ".*\.orig" > .hgignore |
|
17 $ hg add .hgignore |
|
18 $ hg ci -m "added hgignore" |
|
19 $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done; |
|
20 |
|
21 $ hg glog |
|
22 @ 4:c41c793e0ef1 added d |
|
23 | () [default] draft |
|
24 o 3:ca1b80f7960a added c |
|
25 | () [default] draft |
|
26 o 2:b1661037fa25 added b |
|
27 | () [default] draft |
|
28 o 1:c7586e2a9264 added a |
|
29 | () [default] draft |
|
30 o 0:8fa14d15e168 added hgignore |
|
31 () [default] draft |
|
32 |
|
33 Creating content-divergence with branch change where base, divergent and other |
|
34 have different branches |
|
35 ------------------------------------------------------------------------------- |
|
36 |
|
37 $ hg branch -r . foobar |
|
38 changed branch on 1 changesets |
|
39 |
|
40 $ hg up c41c793e0ef1 --hidden |
|
41 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
42 updated to hidden changeset c41c793e0ef1 |
|
43 (hidden revision 'c41c793e0ef1' was rewritten as: 9e5dffcb3d48) |
|
44 working directory parent is obsolete! (c41c793e0ef1) |
|
45 (use 'hg evolve' to update to its successor: 9e5dffcb3d48) |
|
46 $ echo bar > d |
|
47 $ hg branch watwat |
|
48 marked working directory as branch watwat |
|
49 $ hg amend |
|
50 2 new content-divergent changesets |
|
51 |
|
52 $ hg glog |
|
53 @ 6:264b04f771fb added d |
|
54 | () [watwat] draft |
|
55 | * 5:9e5dffcb3d48 added d |
|
56 |/ () [foobar] draft |
|
57 o 3:ca1b80f7960a added c |
|
58 | () [default] draft |
|
59 o 2:b1661037fa25 added b |
|
60 | () [default] draft |
|
61 o 1:c7586e2a9264 added a |
|
62 | () [default] draft |
|
63 o 0:8fa14d15e168 added hgignore |
|
64 () [default] draft |
|
65 |
|
66 $ hg evolve --content-divergent --config ui.interactive=True<<EOF |
|
67 > c |
|
68 > EOF |
|
69 merge:[6] added d |
|
70 with: [5] added d |
|
71 base: [4] added d |
|
72 merging "other" content-divergent changeset '9e5dffcb3d48' |
|
73 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
74 content divergent changesets on different branches. |
|
75 choose branch for the resolution changeset. (a) default or (b) watwat or (c) foobar? c |
|
76 working directory is now at 0ac42f1bc15c |
|
77 |
|
78 $ hg glog |
|
79 @ 7:0ac42f1bc15c added d |
|
80 | () [foobar] draft |
|
81 o 3:ca1b80f7960a added c |
|
82 | () [default] draft |
|
83 o 2:b1661037fa25 added b |
|
84 | () [default] draft |
|
85 o 1:c7586e2a9264 added a |
|
86 | () [default] draft |
|
87 o 0:8fa14d15e168 added hgignore |
|
88 () [default] draft |
|
89 |
|
90 Testing merging of commit messages |
|
91 ----------------------------------- |
|
92 |
|
93 When base and one of the divergent has same commit messages and other divergent |
|
94 has different one |
|
95 |
|
96 $ echo wat > d |
|
97 $ hg amend |
|
98 |
|
99 $ hg up .^ |
|
100 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
101 |
|
102 $ echo bar > d |
|
103 $ hg ci -Aqm "added a d with bar in it, expect some beers" |
|
104 |
|
105 $ hg prune -r 0ac42f1bc15c -s . --hidden |
|
106 1 changesets pruned |
|
107 2 new content-divergent changesets |
|
108 |
|
109 $ hg glog |
|
110 @ 9:59081c9c425a added a d with bar in it, expect some beers |
|
111 | () [default] draft |
|
112 | * 8:f621d00f5f0e added d |
|
113 |/ () [foobar] draft |
|
114 o 3:ca1b80f7960a added c |
|
115 | () [default] draft |
|
116 o 2:b1661037fa25 added b |
|
117 | () [default] draft |
|
118 o 1:c7586e2a9264 added a |
|
119 | () [default] draft |
|
120 o 0:8fa14d15e168 added hgignore |
|
121 () [default] draft |
|
122 |
|
123 $ hg evolve --content-divergent |
|
124 merge:[9] added a d with bar in it, expect some beers |
|
125 with: [8] added d |
|
126 base: [7] added d |
|
127 merging "other" content-divergent changeset 'f621d00f5f0e' |
|
128 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
129 working directory is now at a9d6fd6b5e40 |
|
130 |
|
131 $ hg glog |
|
132 @ 10:a9d6fd6b5e40 added a d with bar in it, expect some beers |
|
133 | () [default] draft |
|
134 o 3:ca1b80f7960a added c |
|
135 | () [default] draft |
|
136 o 2:b1661037fa25 added b |
|
137 | () [default] draft |
|
138 o 1:c7586e2a9264 added a |
|
139 | () [default] draft |
|
140 o 0:8fa14d15e168 added hgignore |
|
141 () [default] draft |
|
142 |
|
143 When base has different message and both divergents has same one |
|
144 |
|
145 $ echo foo > d |
|
146 $ hg amend -m "foo to d" |
|
147 |
|
148 $ hg up a9d6fd6b5e40 --hidden |
|
149 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
150 updated to hidden changeset a9d6fd6b5e40 |
|
151 (hidden revision 'a9d6fd6b5e40' was rewritten as: b10b07a394f1) |
|
152 working directory parent is obsolete! (a9d6fd6b5e40) |
|
153 (use 'hg evolve' to update to its successor: b10b07a394f1) |
|
154 $ echo babar > d |
|
155 $ hg amend -m "foo to d" |
|
156 2 new content-divergent changesets |
|
157 |
|
158 $ hg glog |
|
159 @ 12:0bb497fed24a foo to d |
|
160 | () [default] draft |
|
161 | * 11:b10b07a394f1 foo to d |
|
162 |/ () [default] draft |
|
163 o 3:ca1b80f7960a added c |
|
164 | () [default] draft |
|
165 o 2:b1661037fa25 added b |
|
166 | () [default] draft |
|
167 o 1:c7586e2a9264 added a |
|
168 | () [default] draft |
|
169 o 0:8fa14d15e168 added hgignore |
|
170 () [default] draft |
|
171 |
|
172 $ hg evolve --content-divergent |
|
173 merge:[12] foo to d |
|
174 with: [11] foo to d |
|
175 base: [10] added a d with bar in it, expect some beers |
|
176 merging "other" content-divergent changeset 'b10b07a394f1' |
|
177 merging d |
|
178 warning: conflicts while merging d! (edit, then use 'hg resolve --mark') |
|
179 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
180 fix conflicts and see `hg help evolve.interrupted` |
|
181 [1] |
|
182 |
|
183 $ echo foobar > d |
|
184 $ hg resolve -m |
|
185 (no more unresolved files) |
|
186 continue: hg evolve --continue |
|
187 $ hg evolve --continue |
|
188 working directory is now at 11175423b5dc |
|
189 |
|
190 $ hg glog |
|
191 @ 13:11175423b5dc foo to d |
|
192 | () [default] draft |
|
193 o 3:ca1b80f7960a added c |
|
194 | () [default] draft |
|
195 o 2:b1661037fa25 added b |
|
196 | () [default] draft |
|
197 o 1:c7586e2a9264 added a |
|
198 | () [default] draft |
|
199 o 0:8fa14d15e168 added hgignore |
|
200 () [default] draft |
|
201 |
|
202 When all three base, divergent and other has different commit messages creating |
|
203 conflicts |
|
204 |
|
205 $ echo bar > d |
|
206 $ hg amend -m "bar to d, expect beers" |
|
207 |
|
208 $ hg up 11175423b5dc --hidden |
|
209 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
210 updated to hidden changeset 11175423b5dc |
|
211 (hidden revision '11175423b5dc' was rewritten as: 27f0463f169a) |
|
212 working directory parent is obsolete! (11175423b5dc) |
|
213 (use 'hg evolve' to update to its successor: 27f0463f169a) |
|
214 $ echo wat > d |
|
215 $ hg amend -m "wat to d, wat?" |
|
216 2 new content-divergent changesets |
|
217 |
|
218 $ hg glog |
|
219 @ 15:f542037ddf31 wat to d, wat? |
|
220 | () [default] draft |
|
221 | * 14:27f0463f169a bar to d, expect beers |
|
222 |/ () [default] draft |
|
223 o 3:ca1b80f7960a added c |
|
224 | () [default] draft |
|
225 o 2:b1661037fa25 added b |
|
226 | () [default] draft |
|
227 o 1:c7586e2a9264 added a |
|
228 | () [default] draft |
|
229 o 0:8fa14d15e168 added hgignore |
|
230 () [default] draft |
|
231 |
|
232 $ hg evolve --content-divergent |
|
233 merge:[15] wat to d, wat? |
|
234 with: [14] bar to d, expect beers |
|
235 base: [13] foo to d |
|
236 merging "other" content-divergent changeset '27f0463f169a' |
|
237 merging d |
|
238 warning: conflicts while merging d! (edit, then use 'hg resolve --mark') |
|
239 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
240 fix conflicts and see `hg help evolve.interrupted` |
|
241 [1] |
|
242 |
|
243 $ echo watbar > d |
|
244 $ hg resolve -m |
|
245 (no more unresolved files) |
|
246 continue: hg evolve --continue |
|
247 |
|
248 $ cat > editor.sh <<EOF |
|
249 > #!/bin/sh |
|
250 > printf "**showing editors text**\n\n" |
|
251 > cat \$1 |
|
252 > printf "\n**done showing editors text**\n\n" |
|
253 > cat > \$1 <<ENDOF |
|
254 > watbar to d |
|
255 > ENDOF |
|
256 > EOF |
|
257 |
|
258 $ HGEDITOR='sh ./editor.sh' hg evolve --continue |
|
259 **showing editors text** |
|
260 |
|
261 HG: Conflicts while merging changeset description of content-divergent changesets. |
|
262 HG: Resolve conflicts in commit messages to continue. |
|
263 |
|
264 <<<<<<< divergent |
|
265 wat to d, wat?||||||| base |
|
266 foo to d======= |
|
267 bar to d, expect beers>>>>>>> other |
|
268 |
|
269 **done showing editors text** |
|
270 |
|
271 working directory is now at 89ea3eee2d69 |
|
272 |
|
273 $ hg glog |
|
274 @ 16:89ea3eee2d69 watbar to d |
|
275 | () [default] draft |
|
276 o 3:ca1b80f7960a added c |
|
277 | () [default] draft |
|
278 o 2:b1661037fa25 added b |
|
279 | () [default] draft |
|
280 o 1:c7586e2a9264 added a |
|
281 | () [default] draft |
|
282 o 0:8fa14d15e168 added hgignore |
|
283 () [default] draft |
|
284 |
|
285 $ cd .. |
|
286 |
|
287 Testing resolution of content-divergent changesets when they are on different |
|
288 parents and resolution and relocation wont result in conflicts |
|
289 ------------------------------------------------------------------------------ |
|
290 |
|
291 $ hg init multiparents |
|
292 $ cd multiparents |
|
293 $ echo ".*\.orig" > .hgignore |
|
294 $ hg add .hgignore |
|
295 $ hg ci -m "added hgignore" |
|
296 $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done; |
|
297 |
|
298 $ hg glog |
|
299 @ 4:c41c793e0ef1 added d |
|
300 | () [default] draft |
|
301 o 3:ca1b80f7960a added c |
|
302 | () [default] draft |
|
303 o 2:b1661037fa25 added b |
|
304 | () [default] draft |
|
305 o 1:c7586e2a9264 added a |
|
306 | () [default] draft |
|
307 o 0:8fa14d15e168 added hgignore |
|
308 () [default] draft |
|
309 |
|
310 $ hg up .^^ |
|
311 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
312 $ echo bar > b |
|
313 $ hg amend |
|
314 2 new orphan changesets |
|
315 |
|
316 $ hg rebase -r b1661037fa25 -d 8fa14d15e168 --hidden --config experimental.evolution.allowdivergence=True |
|
317 rebasing 2:b1661037fa25 "added b" |
|
318 2 new content-divergent changesets |
|
319 |
|
320 $ hg glog |
|
321 * 6:da4b96f4a8d6 added b |
|
322 | () [default] draft |
|
323 | @ 5:7ed0642d644b added b |
|
324 | | () [default] draft |
|
325 | | * 4:c41c793e0ef1 added d |
|
326 | | | () [default] draft |
|
327 | | * 3:ca1b80f7960a added c |
|
328 | | | () [default] draft |
|
329 | | x 2:b1661037fa25 added b |
|
330 | |/ () [default] draft |
|
331 | o 1:c7586e2a9264 added a |
|
332 |/ () [default] draft |
|
333 o 0:8fa14d15e168 added hgignore |
|
334 () [default] draft |
|
335 |
|
336 $ hg evolve --content-divergent |
|
337 merge:[5] added b |
|
338 with: [6] added b |
|
339 base: [2] added b |
|
340 rebasing "other" content-divergent changeset da4b96f4a8d6 on c7586e2a9264 |
|
341 updating to "local" side of the conflict: 7ed0642d644b |
|
342 merging "other" content-divergent changeset '11f849d7159f' |
|
343 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
344 working directory is now at 171614c9a791 |
|
345 |
|
346 $ hg glog |
|
347 @ 8:171614c9a791 added b |
|
348 | () [default] draft |
|
349 | * 4:c41c793e0ef1 added d |
|
350 | | () [default] draft |
|
351 | * 3:ca1b80f7960a added c |
|
352 | | () [default] draft |
|
353 | x 2:b1661037fa25 added b |
|
354 |/ () [default] draft |
|
355 o 1:c7586e2a9264 added a |
|
356 | () [default] draft |
|
357 o 0:8fa14d15e168 added hgignore |
|
358 () [default] draft |
|
359 |
|
360 $ hg exp |
|
361 # HG changeset patch |
|
362 # User test |
|
363 # Date 0 0 |
|
364 # Thu Jan 01 00:00:00 1970 +0000 |
|
365 # Node ID 171614c9a7914c53f531373b95632323fdbbac8d |
|
366 # Parent c7586e2a92645e473645847a7b69a6dc52be4276 |
|
367 added b |
|
368 |
|
369 diff -r c7586e2a9264 -r 171614c9a791 b |
|
370 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
371 +++ b/b Thu Jan 01 00:00:00 1970 +0000 |
|
372 @@ -0,0 +1,1 @@ |
|
373 +bar |
|
374 |
|
375 Resolving orphans to get back to a normal graph |
|
376 |
|
377 $ hg evolve --all |
|
378 move:[3] added c |
|
379 atop:[8] added b |
|
380 move:[4] added d |
|
381 working directory is now at 4ae4427ee9f8 |
|
382 $ hg glog |
|
383 @ 10:4ae4427ee9f8 added d |
|
384 | () [default] draft |
|
385 o 9:917281f93fcb added c |
|
386 | () [default] draft |
|
387 o 8:171614c9a791 added b |
|
388 | () [default] draft |
|
389 o 1:c7586e2a9264 added a |
|
390 | () [default] draft |
|
391 o 0:8fa14d15e168 added hgignore |
|
392 () [default] draft |
|
393 |
|
394 More testing! |
|
395 |
|
396 $ hg up .^^ |
|
397 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
398 $ echo x > x |
|
399 $ hg ci -Aqm "added x" |
|
400 $ hg glog -r . |
|
401 @ 11:71a392c714b5 added x |
|
402 | () [default] draft |
|
403 ~ |
|
404 |
|
405 $ echo foo > x |
|
406 $ hg branch bar |
|
407 marked working directory as branch bar |
|
408 (branches are permanent and global, did you want a bookmark?) |
|
409 $ hg amend -m "added foo to x" |
|
410 |
|
411 $ hg up 71a392c714b5 --hidden |
|
412 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
413 updated to hidden changeset 71a392c714b5 |
|
414 (hidden revision '71a392c714b5' was rewritten as: 1e1a50385a7d) |
|
415 working directory parent is obsolete! (71a392c714b5) |
|
416 (use 'hg evolve' to update to its successor: 1e1a50385a7d) |
|
417 $ hg rebase -r . -d 4ae4427ee9f8 --config experimental.evolution.allowdivergence=True |
|
418 rebasing 11:71a392c714b5 "added x" |
|
419 2 new content-divergent changesets |
|
420 |
|
421 $ hg glog |
|
422 @ 13:1e4f6b3bb39b added x |
|
423 | () [default] draft |
|
424 | * 12:1e1a50385a7d added foo to x |
|
425 | | () [bar] draft |
|
426 o | 10:4ae4427ee9f8 added d |
|
427 | | () [default] draft |
|
428 o | 9:917281f93fcb added c |
|
429 |/ () [default] draft |
|
430 o 8:171614c9a791 added b |
|
431 | () [default] draft |
|
432 o 1:c7586e2a9264 added a |
|
433 | () [default] draft |
|
434 o 0:8fa14d15e168 added hgignore |
|
435 () [default] draft |
|
436 |
|
437 $ hg evolve --content-divergent |
|
438 merge:[13] added x |
|
439 with: [12] added foo to x |
|
440 base: [11] added x |
|
441 rebasing "other" content-divergent changeset 1e1a50385a7d on 4ae4427ee9f8 |
|
442 updating to "local" side of the conflict: 1e4f6b3bb39b |
|
443 merging "other" content-divergent changeset '80cc9b1ec650' |
|
444 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
445 working directory is now at b006cf317e0e |
|
446 |
|
447 $ hg exp |
|
448 # HG changeset patch |
|
449 # User test |
|
450 # Date 0 0 |
|
451 # Thu Jan 01 00:00:00 1970 +0000 |
|
452 # Branch bar |
|
453 # Node ID b006cf317e0ed16dbe786c439577475580f645f1 |
|
454 # Parent 4ae4427ee9f8f0935211fd66360948b77ab5aee9 |
|
455 added foo to x |
|
456 |
|
457 diff -r 4ae4427ee9f8 -r b006cf317e0e x |
|
458 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
459 +++ b/x Thu Jan 01 00:00:00 1970 +0000 |
|
460 @@ -0,0 +1,1 @@ |
|
461 +foo |
|
462 |
|
463 The above `hg exp` and the following log call demonstrates that message, content |
|
464 and branch change is preserved in case of relocation |
|
465 $ hg glog |
|
466 @ 15:b006cf317e0e added foo to x |
|
467 | () [bar] draft |
|
468 o 10:4ae4427ee9f8 added d |
|
469 | () [default] draft |
|
470 o 9:917281f93fcb added c |
|
471 | () [default] draft |
|
472 o 8:171614c9a791 added b |
|
473 | () [default] draft |
|
474 o 1:c7586e2a9264 added a |
|
475 | () [default] draft |
|
476 o 0:8fa14d15e168 added hgignore |
|
477 () [default] draft |
|
478 |
|
479 Testing when both the content-divergence are on different parents and resolution |
|
480 will lead to conflicts |
|
481 --------------------------------------------------------------------------------- |
|
482 |
|
483 $ hg up .^^^ |
|
484 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
|
485 |
|
486 $ echo y > y |
|
487 $ hg ci -Aqm "added y" |
|
488 $ hg glog -r . |
|
489 @ 16:fc6ad2bac162 added y |
|
490 | () [default] draft |
|
491 ~ |
|
492 |
|
493 $ echo bar > y |
|
494 $ hg amend |
|
495 |
|
496 $ hg up fc6ad2bac162 --hidden |
|
497 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
498 updated to hidden changeset fc6ad2bac162 |
|
499 (hidden revision 'fc6ad2bac162' was rewritten as: 2a9f6ccbdeba) |
|
500 working directory parent is obsolete! (fc6ad2bac162) |
|
501 (use 'hg evolve' to update to its successor: 2a9f6ccbdeba) |
|
502 $ hg rebase -r . -d b006cf317e0e --config experimental.evolution.allowdivergence=True |
|
503 rebasing 16:fc6ad2bac162 "added y" |
|
504 2 new content-divergent changesets |
|
505 $ echo wat > y |
|
506 $ hg amend |
|
507 |
|
508 $ hg glog |
|
509 @ 19:b4575ed6fcfc added y |
|
510 | () [bar] draft |
|
511 | * 17:2a9f6ccbdeba added y |
|
512 | | () [default] draft |
|
513 o | 15:b006cf317e0e added foo to x |
|
514 | | () [bar] draft |
|
515 o | 10:4ae4427ee9f8 added d |
|
516 | | () [default] draft |
|
517 o | 9:917281f93fcb added c |
|
518 |/ () [default] draft |
|
519 o 8:171614c9a791 added b |
|
520 | () [default] draft |
|
521 o 1:c7586e2a9264 added a |
|
522 | () [default] draft |
|
523 o 0:8fa14d15e168 added hgignore |
|
524 () [default] draft |
|
525 |
|
526 $ hg evolve --content-divergent |
|
527 merge:[19] added y |
|
528 with: [17] added y |
|
529 base: [16] added y |
|
530 rebasing "other" content-divergent changeset 2a9f6ccbdeba on b006cf317e0e |
|
531 updating to "local" side of the conflict: b4575ed6fcfc |
|
532 merging "other" content-divergent changeset '48f745db3f53' |
|
533 merging y |
|
534 warning: conflicts while merging y! (edit, then use 'hg resolve --mark') |
|
535 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
536 fix conflicts and see `hg help evolve.interrupted` |
|
537 [1] |
|
538 |
|
539 $ echo watbar > y |
|
540 $ hg resolve -m |
|
541 (no more unresolved files) |
|
542 continue: hg evolve --continue |
|
543 $ hg evolve --continue |
|
544 working directory is now at 7bbcf24ddecf |
|
545 |
|
546 $ hg glog |
|
547 @ 21:7bbcf24ddecf added y |
|
548 | () [bar] draft |
|
549 o 15:b006cf317e0e added foo to x |
|
550 | () [bar] draft |
|
551 o 10:4ae4427ee9f8 added d |
|
552 | () [default] draft |
|
553 o 9:917281f93fcb added c |
|
554 | () [default] draft |
|
555 o 8:171614c9a791 added b |
|
556 | () [default] draft |
|
557 o 1:c7586e2a9264 added a |
|
558 | () [default] draft |
|
559 o 0:8fa14d15e168 added hgignore |
|
560 () [default] draft |
|
561 |
|
562 $ hg obslog -r . --all |
|
563 @ 7bbcf24ddecf (21) added y |
|
564 |\ |
|
565 x | 48f745db3f53 (20) added y |
|
566 | | rewritten(branch, content) as 7bbcf24ddecf using evolve by test (Thu Jan 01 00:00:00 1970 +0000) |
|
567 | | |
|
568 | x b4575ed6fcfc (19) added y |
|
569 | | rewritten(content) as 7bbcf24ddecf using evolve by test (Thu Jan 01 00:00:00 1970 +0000) |
|
570 | | |
|
571 x | 2a9f6ccbdeba (17) added y |
|
572 | | rewritten(parent) as 48f745db3f53 using evolve by test (Thu Jan 01 00:00:00 1970 +0000) |
|
573 | | |
|
574 | x 96b677f01b81 (18) added y |
|
575 |/ rewritten(content) as b4575ed6fcfc using amend by test (Thu Jan 01 00:00:00 1970 +0000) |
|
576 | |
|
577 x fc6ad2bac162 (16) added y |
|
578 rewritten(content) as 2a9f6ccbdeba using amend by test (Thu Jan 01 00:00:00 1970 +0000) |
|
579 rewritten(branch, parent) as 96b677f01b81 using rebase by test (Thu Jan 01 00:00:00 1970 +0000) |
|
580 |
|
581 |
|
582 checking that relocated commit is there |
|
583 $ hg exp 48f745db3f53 --hidden |
|
584 # HG changeset patch |
|
585 # User test |
|
586 # Date 0 0 |
|
587 # Thu Jan 01 00:00:00 1970 +0000 |
|
588 # Node ID 48f745db3f5300363ca248b9aeab20ff2a55fbb3 |
|
589 # Parent b006cf317e0ed16dbe786c439577475580f645f1 |
|
590 added y |
|
591 |
|
592 diff -r b006cf317e0e -r 48f745db3f53 y |
|
593 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
594 +++ b/y Thu Jan 01 00:00:00 1970 +0000 |
|
595 @@ -0,0 +1,1 @@ |
|
596 +bar |
|
597 |
|
598 Testing when the relocation will result in conflicts and merging also: |
|
599 ---------------------------------------------------------------------- |
|
600 |
|
601 $ hg glog |
|
602 @ 21:7bbcf24ddecf added y |
|
603 | () [bar] draft |
|
604 o 15:b006cf317e0e added foo to x |
|
605 | () [bar] draft |
|
606 o 10:4ae4427ee9f8 added d |
|
607 | () [default] draft |
|
608 o 9:917281f93fcb added c |
|
609 | () [default] draft |
|
610 o 8:171614c9a791 added b |
|
611 | () [default] draft |
|
612 o 1:c7586e2a9264 added a |
|
613 | () [default] draft |
|
614 o 0:8fa14d15e168 added hgignore |
|
615 () [default] draft |
|
616 |
|
617 $ hg up .^^^^ |
|
618 0 files updated, 0 files merged, 4 files removed, 0 files unresolved |
|
619 |
|
620 $ echo z > z |
|
621 $ hg ci -Aqm "added z" |
|
622 $ hg glog -r . |
|
623 @ 22:daf1de08f3b0 added z |
|
624 | () [default] draft |
|
625 ~ |
|
626 |
|
627 $ echo foo > y |
|
628 $ hg add y |
|
629 $ hg amend |
|
630 |
|
631 $ hg up daf1de08f3b0 --hidden |
|
632 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
633 updated to hidden changeset daf1de08f3b0 |
|
634 (hidden revision 'daf1de08f3b0' was rewritten as: 3f7a1f693080) |
|
635 working directory parent is obsolete! (daf1de08f3b0) |
|
636 (use 'hg evolve' to update to its successor: 3f7a1f693080) |
|
637 $ hg rebase -r . -d 7bbcf24ddecf --config experimental.evolution.allowdivergence=True |
|
638 rebasing 22:daf1de08f3b0 "added z" |
|
639 2 new content-divergent changesets |
|
640 $ echo bar > z |
|
641 $ hg amend |
|
642 |
|
643 $ hg glog |
|
644 @ 25:53242575ffa9 added z |
|
645 | () [bar] draft |
|
646 | * 23:3f7a1f693080 added z |
|
647 | | () [default] draft |
|
648 o | 21:7bbcf24ddecf added y |
|
649 | | () [bar] draft |
|
650 o | 15:b006cf317e0e added foo to x |
|
651 | | () [bar] draft |
|
652 o | 10:4ae4427ee9f8 added d |
|
653 | | () [default] draft |
|
654 o | 9:917281f93fcb added c |
|
655 |/ () [default] draft |
|
656 o 8:171614c9a791 added b |
|
657 | () [default] draft |
|
658 o 1:c7586e2a9264 added a |
|
659 | () [default] draft |
|
660 o 0:8fa14d15e168 added hgignore |
|
661 () [default] draft |
|
662 |
|
663 $ hg evolve --content-divergent --any |
|
664 merge:[25] added z |
|
665 with: [23] added z |
|
666 base: [22] added z |
|
667 rebasing "other" content-divergent changeset 3f7a1f693080 on 7bbcf24ddecf |
|
668 merging y |
|
669 warning: conflicts while merging y! (edit, then use 'hg resolve --mark') |
|
670 fix conflicts and see `hg help evolve.interrupted` |
|
671 [1] |
|
672 |
|
673 $ hg diff |
|
674 diff -r 7bbcf24ddecf y |
|
675 --- a/y Thu Jan 01 00:00:00 1970 +0000 |
|
676 +++ b/y Thu Jan 01 00:00:00 1970 +0000 |
|
677 @@ -1,1 +1,5 @@ |
|
678 +<<<<<<< destination: 7bbcf24ddecf bar - test: added y |
|
679 watbar |
|
680 +======= |
|
681 +foo |
|
682 +>>>>>>> evolving: 3f7a1f693080 - test: added z |
|
683 diff -r 7bbcf24ddecf z |
|
684 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
685 +++ b/z Thu Jan 01 00:00:00 1970 +0000 |
|
686 @@ -0,0 +1,1 @@ |
|
687 +z |
|
688 |
|
689 $ echo foo > y |
|
690 $ hg resolve -m |
|
691 (no more unresolved files) |
|
692 continue: hg evolve --continue |
|
693 |
|
694 $ hg evolve --continue |
|
695 evolving 23:3f7a1f693080 "added z" |
|
696 updating to "local" side of the conflict: 53242575ffa9 |
|
697 merging "other" content-divergent changeset 'cdb0643c69fc' |
|
698 merging y |
|
699 warning: conflicts while merging y! (edit, then use 'hg resolve --mark') |
|
700 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
701 fix conflicts and see `hg help evolve.interrupted` |
|
702 [1] |
|
703 |
|
704 $ hg diff |
|
705 diff -r 53242575ffa9 y |
|
706 --- a/y Thu Jan 01 00:00:00 1970 +0000 |
|
707 +++ b/y Thu Jan 01 00:00:00 1970 +0000 |
|
708 @@ -1,1 +1,5 @@ |
|
709 +<<<<<<< local: 53242575ffa9 bar - test: added z |
|
710 watbar |
|
711 +======= |
|
712 +foo |
|
713 +>>>>>>> other: cdb0643c69fc - test: added z |
|
714 |
|
715 $ echo foo > y |
|
716 $ hg resolve -m |
|
717 (no more unresolved files) |
|
718 continue: hg evolve --continue |
|
719 $ hg evolve --continue |
|
720 working directory is now at 6fc7d9682de6 |
|
721 |
|
722 $ hg glog |
|
723 @ 27:6fc7d9682de6 added z |
|
724 | () [bar] draft |
|
725 o 21:7bbcf24ddecf added y |
|
726 | () [bar] draft |
|
727 o 15:b006cf317e0e added foo to x |
|
728 | () [bar] draft |
|
729 o 10:4ae4427ee9f8 added d |
|
730 | () [default] draft |
|
731 o 9:917281f93fcb added c |
|
732 | () [default] draft |
|
733 o 8:171614c9a791 added b |
|
734 | () [default] draft |
|
735 o 1:c7586e2a9264 added a |
|
736 | () [default] draft |
|
737 o 0:8fa14d15e168 added hgignore |
|
738 () [default] draft |
|
739 |
|
740 $ hg exp |
|
741 # HG changeset patch |
|
742 # User test |
|
743 # Date 0 0 |
|
744 # Thu Jan 01 00:00:00 1970 +0000 |
|
745 # Branch bar |
|
746 # Node ID 6fc7d9682de6e3bee6c8b1266b756ed7d522b7e4 |
|
747 # Parent 7bbcf24ddecfe97d7c2ac6fa8c07c155c8fda47b |
|
748 added z |
|
749 |
|
750 diff -r 7bbcf24ddecf -r 6fc7d9682de6 y |
|
751 --- a/y Thu Jan 01 00:00:00 1970 +0000 |
|
752 +++ b/y Thu Jan 01 00:00:00 1970 +0000 |
|
753 @@ -1,1 +1,1 @@ |
|
754 -watbar |
|
755 +foo |
|
756 diff -r 7bbcf24ddecf -r 6fc7d9682de6 z |
|
757 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
758 +++ b/z Thu Jan 01 00:00:00 1970 +0000 |
|
759 @@ -0,0 +1,1 @@ |
|
760 +bar |
|
761 |
|
762 $ cd .. |
|
763 |
|
764 Resolving content-divergence of a stack with same parents |
|
765 --------------------------------------------------------- |
|
766 |
|
767 $ hg init stacktest |
|
768 $ cd stacktest |
|
769 $ echo ".*\.orig" > .hgignore |
|
770 $ hg add .hgignore |
|
771 $ hg ci -m "added hgignore" |
|
772 $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done; |
|
773 |
|
774 $ hg glog |
|
775 @ 4:c41c793e0ef1 added d |
|
776 | () [default] draft |
|
777 o 3:ca1b80f7960a added c |
|
778 | () [default] draft |
|
779 o 2:b1661037fa25 added b |
|
780 | () [default] draft |
|
781 o 1:c7586e2a9264 added a |
|
782 | () [default] draft |
|
783 o 0:8fa14d15e168 added hgignore |
|
784 () [default] draft |
|
785 |
|
786 $ cd .. |
|
787 $ hg init stack2 |
|
788 $ cd stack2 |
|
789 $ hg pull ../stacktest |
|
790 pulling from ../stacktest |
|
791 requesting all changes |
|
792 adding changesets |
|
793 adding manifests |
|
794 adding file changes |
|
795 added 5 changesets with 5 changes to 5 files |
|
796 new changesets 8fa14d15e168:c41c793e0ef1 (5 drafts) |
|
797 (run 'hg update' to get a working copy) |
|
798 $ hg glog |
|
799 o 4:c41c793e0ef1 added d |
|
800 | () [default] draft |
|
801 o 3:ca1b80f7960a added c |
|
802 | () [default] draft |
|
803 o 2:b1661037fa25 added b |
|
804 | () [default] draft |
|
805 o 1:c7586e2a9264 added a |
|
806 | () [default] draft |
|
807 o 0:8fa14d15e168 added hgignore |
|
808 () [default] draft |
|
809 |
|
810 $ hg up c7586e2a9264 |
|
811 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
812 $ echo bar > a |
|
813 $ hg amend -m "watbar to a" |
|
814 3 new orphan changesets |
|
815 $ echo wat > a |
|
816 $ hg amend -m "watbar to a" |
|
817 $ hg evolve --all |
|
818 move:[2] added b |
|
819 atop:[6] watbar to a |
|
820 move:[3] added c |
|
821 move:[4] added d |
|
822 working directory is now at 15c781f93cac |
|
823 $ hg glog |
|
824 @ 9:15c781f93cac added d |
|
825 | () [default] draft |
|
826 o 8:9e5fb1d5b955 added c |
|
827 | () [default] draft |
|
828 o 7:88516dccf68a added b |
|
829 | () [default] draft |
|
830 o 6:82b74d5dc678 watbar to a |
|
831 | () [default] draft |
|
832 o 0:8fa14d15e168 added hgignore |
|
833 () [default] draft |
|
834 |
|
835 $ cd ../stacktest |
|
836 $ hg up .^^^ |
|
837 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
|
838 $ echo wat > a |
|
839 $ hg amend -m "watbar to a" |
|
840 3 new orphan changesets |
|
841 $ hg evolve --all |
|
842 move:[2] added b |
|
843 atop:[5] watbar to a |
|
844 move:[3] added c |
|
845 move:[4] added d |
|
846 working directory is now at c72d2885eb51 |
|
847 $ hg glog |
|
848 @ 8:c72d2885eb51 added d |
|
849 | () [default] draft |
|
850 o 7:3ce4be6d8e5e added c |
|
851 | () [default] draft |
|
852 o 6:d5f148423c16 added b |
|
853 | () [default] draft |
|
854 o 5:8e222f257bbf watbar to a |
|
855 | () [default] draft |
|
856 o 0:8fa14d15e168 added hgignore |
|
857 () [default] draft |
|
858 |
|
859 $ hg pull ../stack2 |
|
860 pulling from ../stack2 |
|
861 searching for changes |
|
862 adding changesets |
|
863 adding manifests |
|
864 adding file changes |
|
865 added 4 changesets with 0 changes to 4 files (+1 heads) |
|
866 5 new obsolescence markers |
|
867 8 new content-divergent changesets |
|
868 new changesets 82b74d5dc678:15c781f93cac (4 drafts) |
|
869 (run 'hg heads' to see heads, 'hg merge' to merge) |
|
870 |
|
871 $ hg glog |
|
872 * 12:15c781f93cac added d |
|
873 | () [default] draft |
|
874 * 11:9e5fb1d5b955 added c |
|
875 | () [default] draft |
|
876 * 10:88516dccf68a added b |
|
877 | () [default] draft |
|
878 * 9:82b74d5dc678 watbar to a |
|
879 | () [default] draft |
|
880 | @ 8:c72d2885eb51 added d |
|
881 | | () [default] draft |
|
882 | * 7:3ce4be6d8e5e added c |
|
883 | | () [default] draft |
|
884 | * 6:d5f148423c16 added b |
|
885 | | () [default] draft |
|
886 | * 5:8e222f257bbf watbar to a |
|
887 |/ () [default] draft |
|
888 o 0:8fa14d15e168 added hgignore |
|
889 () [default] draft |
|
890 |
|
891 $ hg evolve --all --content-divergent |
|
892 merge:[5] watbar to a |
|
893 with: [9] watbar to a |
|
894 base: [1] added a |
|
895 updating to "local" side of the conflict: 8e222f257bbf |
|
896 merging "other" content-divergent changeset '82b74d5dc678' |
|
897 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
898 6 new orphan changesets |
|
899 merge:[6] added b |
|
900 with: [10] added b |
|
901 base: [2] added b |
|
902 updating to "local" side of the conflict: d5f148423c16 |
|
903 merging "other" content-divergent changeset '88516dccf68a' |
|
904 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
905 merge:[7] added c |
|
906 with: [11] added c |
|
907 base: [3] added c |
|
908 updating to "local" side of the conflict: 3ce4be6d8e5e |
|
909 merging "other" content-divergent changeset '9e5fb1d5b955' |
|
910 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
911 merge:[8] added d |
|
912 with: [12] added d |
|
913 base: [4] added d |
|
914 updating to "local" side of the conflict: c72d2885eb51 |
|
915 merging "other" content-divergent changeset '15c781f93cac' |
|
916 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
917 working directory is now at 038fe7db3d88 |
|
918 |
|
919 $ hg glog |
|
920 @ 16:038fe7db3d88 added d |
|
921 | () [default] draft |
|
922 o 15:b2cac10f3836 added c |
|
923 | () [default] draft |
|
924 o 14:eadfd9d70680 added b |
|
925 | () [default] draft |
|
926 o 13:f66f262fff6c watbar to a |
|
927 | () [default] draft |
|
928 o 0:8fa14d15e168 added hgignore |
|
929 () [default] draft |
|
930 |
|
931 Resolving content-divergence of a stack with different parents |
|
932 --------------------------------------------------------- |
|
933 |
|
934 $ cd .. |
|
935 $ hg init stackrepo1 |
|
936 $ cd stackrepo1 |
|
937 $ echo ".*\.orig" > .hgignore |
|
938 $ hg add .hgignore |
|
939 $ hg ci -m "added hgignore" |
|
940 |
|
941 $ for ch in a b c d; |
|
942 > do echo foo > $ch; |
|
943 > hg add $ch; |
|
944 > hg ci -qm "added "$ch; |
|
945 > done; |
|
946 |
|
947 $ hg glog |
|
948 @ 4:c41c793e0ef1 added d |
|
949 | () [default] draft |
|
950 o 3:ca1b80f7960a added c |
|
951 | () [default] draft |
|
952 o 2:b1661037fa25 added b |
|
953 | () [default] draft |
|
954 o 1:c7586e2a9264 added a |
|
955 | () [default] draft |
|
956 o 0:8fa14d15e168 added hgignore |
|
957 () [default] draft |
|
958 |
|
959 $ cd .. |
|
960 $ hg init stackrepo2 |
|
961 $ cd stackrepo2 |
|
962 $ hg pull ../stackrepo1 |
|
963 pulling from ../stackrepo1 |
|
964 requesting all changes |
|
965 adding changesets |
|
966 adding manifests |
|
967 adding file changes |
|
968 added 5 changesets with 5 changes to 5 files |
|
969 new changesets 8fa14d15e168:c41c793e0ef1 (5 drafts) |
|
970 (run 'hg update' to get a working copy) |
|
971 |
|
972 $ hg glog |
|
973 o 4:c41c793e0ef1 added d |
|
974 | () [default] draft |
|
975 o 3:ca1b80f7960a added c |
|
976 | () [default] draft |
|
977 o 2:b1661037fa25 added b |
|
978 | () [default] draft |
|
979 o 1:c7586e2a9264 added a |
|
980 | () [default] draft |
|
981 o 0:8fa14d15e168 added hgignore |
|
982 () [default] draft |
|
983 |
|
984 $ hg up 8fa14d15e168 |
|
985 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
986 $ echo newfile > newfile |
|
987 $ hg ci -Am "add newfile" |
|
988 adding newfile |
|
989 created new head |
|
990 $ hg rebase -s c7586e2a9264 -d . |
|
991 rebasing 1:c7586e2a9264 "added a" |
|
992 rebasing 2:b1661037fa25 "added b" |
|
993 rebasing 3:ca1b80f7960a "added c" |
|
994 rebasing 4:c41c793e0ef1 "added d" |
|
995 |
|
996 $ hg glog |
|
997 o 9:d45f050514c2 added d |
|
998 | () [default] draft |
|
999 o 8:8ed612937375 added c |
|
1000 | () [default] draft |
|
1001 o 7:6eb54b5af3fb added b |
|
1002 | () [default] draft |
|
1003 o 6:c04ff147ef79 added a |
|
1004 | () [default] draft |
|
1005 @ 5:2228e3b74514 add newfile |
|
1006 | () [default] draft |
|
1007 o 0:8fa14d15e168 added hgignore |
|
1008 () [default] draft |
|
1009 |
|
1010 $ cd ../stackrepo1 |
|
1011 $ hg up .^^^ |
|
1012 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
|
1013 $ echo wat > a |
|
1014 $ hg amend -m "watbar to a" |
|
1015 3 new orphan changesets |
|
1016 $ hg evolve --all |
|
1017 move:[2] added b |
|
1018 atop:[5] watbar to a |
|
1019 move:[3] added c |
|
1020 move:[4] added d |
|
1021 working directory is now at c72d2885eb51 |
|
1022 |
|
1023 $ hg glog |
|
1024 @ 8:c72d2885eb51 added d |
|
1025 | () [default] draft |
|
1026 o 7:3ce4be6d8e5e added c |
|
1027 | () [default] draft |
|
1028 o 6:d5f148423c16 added b |
|
1029 | () [default] draft |
|
1030 o 5:8e222f257bbf watbar to a |
|
1031 | () [default] draft |
|
1032 o 0:8fa14d15e168 added hgignore |
|
1033 () [default] draft |
|
1034 |
|
1035 $ hg pull ../stackrepo2 |
|
1036 pulling from ../stackrepo2 |
|
1037 searching for changes |
|
1038 adding changesets |
|
1039 adding manifests |
|
1040 adding file changes |
|
1041 added 5 changesets with 1 changes to 5 files (+1 heads) |
|
1042 4 new obsolescence markers |
|
1043 8 new content-divergent changesets |
|
1044 new changesets 2228e3b74514:d45f050514c2 (5 drafts) |
|
1045 (run 'hg heads' to see heads, 'hg merge' to merge) |
|
1046 |
|
1047 $ hg glog |
|
1048 * 13:d45f050514c2 added d |
|
1049 | () [default] draft |
|
1050 * 12:8ed612937375 added c |
|
1051 | () [default] draft |
|
1052 * 11:6eb54b5af3fb added b |
|
1053 | () [default] draft |
|
1054 * 10:c04ff147ef79 added a |
|
1055 | () [default] draft |
|
1056 o 9:2228e3b74514 add newfile |
|
1057 | () [default] draft |
|
1058 | @ 8:c72d2885eb51 added d |
|
1059 | | () [default] draft |
|
1060 | * 7:3ce4be6d8e5e added c |
|
1061 | | () [default] draft |
|
1062 | * 6:d5f148423c16 added b |
|
1063 | | () [default] draft |
|
1064 | * 5:8e222f257bbf watbar to a |
|
1065 |/ () [default] draft |
|
1066 o 0:8fa14d15e168 added hgignore |
|
1067 () [default] draft |
|
1068 |
|
1069 $ hg evolve --all --content-divergent |
|
1070 merge:[10] added a |
|
1071 with: [5] watbar to a |
|
1072 base: [1] added a |
|
1073 rebasing "other" content-divergent changeset 8e222f257bbf on 2228e3b74514 |
|
1074 updating to "local" side of the conflict: c04ff147ef79 |
|
1075 merging "other" content-divergent changeset '186bdc2cdfa2' |
|
1076 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1077 6 new orphan changesets |
|
1078 merge:[11] added b |
|
1079 with: [6] added b |
|
1080 base: [2] added b |
|
1081 rebasing "other" content-divergent changeset d5f148423c16 on c04ff147ef79 |
|
1082 updating to "local" side of the conflict: 6eb54b5af3fb |
|
1083 merging "other" content-divergent changeset '8542f15656e7' |
|
1084 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1085 merge:[12] added c |
|
1086 with: [7] added c |
|
1087 base: [3] added c |
|
1088 rebasing "other" content-divergent changeset 3ce4be6d8e5e on 6eb54b5af3fb |
|
1089 updating to "local" side of the conflict: 8ed612937375 |
|
1090 merging "other" content-divergent changeset 'a690ce53104a' |
|
1091 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1092 merge:[13] added d |
|
1093 with: [8] added d |
|
1094 base: [4] added d |
|
1095 rebasing "other" content-divergent changeset c72d2885eb51 on 8ed612937375 |
|
1096 updating to "local" side of the conflict: d45f050514c2 |
|
1097 merging "other" content-divergent changeset '1d1772990a3b' |
|
1098 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1099 working directory is now at 5f7a38bdb75c |
|
1100 |
|
1101 $ hg glog |
|
1102 @ 21:5f7a38bdb75c added d |
|
1103 | () [default] draft |
|
1104 o 19:9865d598f0e0 added c |
|
1105 | () [default] draft |
|
1106 o 17:ac70b8c8eb63 added b |
|
1107 | () [default] draft |
|
1108 o 15:74fbf3e6a0b6 watbar to a |
|
1109 | () [default] draft |
|
1110 o 9:2228e3b74514 add newfile |
|
1111 | () [default] draft |
|
1112 o 0:8fa14d15e168 added hgignore |
|
1113 () [default] draft |
|
1114 |
|
1115 Test to make sure that evolve don't fall into unrecoverable state (issue6053) |
|
1116 ------------------------------------------------------------------------------ |
|
1117 |
|
1118 It happened when two divergent csets has different parent (need relocation) |
|
1119 and resolution parent is obsolete. So this issue triggered when during |
|
1120 relocation we hit conflicts. So lets make the repo as described. |
|
1121 |
|
1122 $ cd .. |
|
1123 $ hg init localside |
|
1124 $ cd localside |
|
1125 $ for ch in a b c d e; do |
|
1126 > echo $ch > $ch; |
|
1127 > hg add $ch; |
|
1128 > hg ci -m "added "$ch; |
|
1129 > done; |
|
1130 |
|
1131 $ hg glog |
|
1132 @ 4:8d71eadcc9df added e |
|
1133 | () [default] draft |
|
1134 o 3:9150fe93bec6 added d |
|
1135 | () [default] draft |
|
1136 o 2:155349b645be added c |
|
1137 | () [default] draft |
|
1138 o 1:5f6d8a4bf34a added b |
|
1139 | () [default] draft |
|
1140 o 0:9092f1db7931 added a |
|
1141 () [default] draft |
|
1142 |
|
1143 $ echo ee > e |
|
1144 $ hg amend -m "updated e" |
|
1145 $ hg up 1 -q |
|
1146 |
|
1147 To make sure we hit conflict while relocating |
|
1148 $ echo dd > d |
|
1149 $ echo ee > e |
|
1150 $ hg add d e |
|
1151 $ hg ci -m "updated e" |
|
1152 created new head |
|
1153 |
|
1154 Lets create divergence |
|
1155 $ hg prune 4 -s . --hidden |
|
1156 1 changesets pruned |
|
1157 2 new content-divergent changesets |
|
1158 |
|
1159 Making obsolete resolution parent |
|
1160 $ hg prune 3 |
|
1161 1 changesets pruned |
|
1162 1 new orphan changesets |
|
1163 |
|
1164 $ hg glog |
|
1165 @ 6:de4ea3103326 updated e |
|
1166 | () [default] draft |
|
1167 | * 5:ff6f7cd76a7c updated e |
|
1168 | | () [default] draft |
|
1169 | x 3:9150fe93bec6 added d |
|
1170 | | () [default] draft |
|
1171 | o 2:155349b645be added c |
|
1172 |/ () [default] draft |
|
1173 o 1:5f6d8a4bf34a added b |
|
1174 | () [default] draft |
|
1175 o 0:9092f1db7931 added a |
|
1176 () [default] draft |
|
1177 |
|
1178 $ hg evolve --content-divergent --any |
|
1179 merge:[5] updated e |
|
1180 with: [6] updated e |
|
1181 base: [4] added e |
|
1182 rebasing "other" content-divergent changeset de4ea3103326 on 9150fe93bec6 |
|
1183 merging d |
|
1184 warning: conflicts while merging d! (edit, then use 'hg resolve --mark') |
|
1185 fix conflicts and see `hg help evolve.interrupted` |
|
1186 [1] |
|
1187 |
|
1188 $ hg diff |
|
1189 diff -r 9150fe93bec6 d |
|
1190 --- a/d Thu Jan 01 00:00:00 1970 +0000 |
|
1191 +++ b/d Thu Jan 01 00:00:00 1970 +0000 |
|
1192 @@ -1,1 +1,5 @@ |
|
1193 +<<<<<<< destination: 9150fe93bec6 - test: added d |
|
1194 d |
|
1195 +======= |
|
1196 +dd |
|
1197 +>>>>>>> evolving: de4ea3103326 - test: updated e |
|
1198 diff -r 9150fe93bec6 e |
|
1199 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
1200 +++ b/e Thu Jan 01 00:00:00 1970 +0000 |
|
1201 @@ -0,0 +1,1 @@ |
|
1202 +ee |
|
1203 |
|
1204 $ echo dresolved > d |
|
1205 $ hg res -m |
|
1206 (no more unresolved files) |
|
1207 continue: hg evolve --continue |
|
1208 |
|
1209 $ hg evolve --continue |
|
1210 evolving 6:de4ea3103326 "updated e" |
|
1211 updating to "local" side of the conflict: ff6f7cd76a7c |
|
1212 merging "other" content-divergent changeset 'e504bd82de7e' |
|
1213 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1214 working directory is now at 83b1664a580f |
|
1215 |
|
1216 $ hg glog -l1 |
|
1217 @ 8:83b1664a580f updated e |
|
1218 | () [default] draft |
|
1219 ~ |
|