tests: add more test of --abort flag for content-divergence resolution
This patch adds test when we resolve multiple content-divergence changesets at
once and resolution fo first content-divergence does not form new commits,
resolution of second one leads to conflicts.
As the output shows, we are wrongly stripping a changeset here, which should be
fixed in next patch.
--- a/tests/test-evolve-abort-contentdiv.t Mon Jun 04 04:03:02 2018 +0530
+++ b/tests/test-evolve-abort-contentdiv.t Thu May 24 17:04:20 2018 +0530
@@ -100,3 +100,95 @@
| () draft
o 0:8fa14d15e168 added hgignore
() draft
+
+Creating multiple content-divergence where resolution of last one results in
+conflicts and resolution of first one resulted in no new commit
+-----------------------------------------------------------------------------
+
+ $ echo watbar > d
+ $ hg amend
+ $ hg up .^
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo bar > c
+ $ hg amend
+ 2 new orphan changesets
+ $ hg up ca1b80f7960a --hidden
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ working directory parent is obsolete! (ca1b80f7960a)
+ (use 'hg evolve' to update to its successor: 2ba73e31f264)
+ $ echo foobar > c
+ $ hg amend
+ 2 new content-divergent changesets
+ $ echo bar > c
+ $ hg amend
+
+ $ hg glog --hidden
+ @ 10:491e10505bae added c
+ | () draft
+ | x 9:7398f702a162 added c
+ |/ () draft
+ | * 8:2ba73e31f264 added c
+ |/ () draft
+ | * 7:f0f1694f123e added d
+ | | () draft
+ | | x 6:9c1631e352d9 added d
+ | |/ () draft
+ | | * 5:e49523854bc8 added d
+ | |/ () draft
+ | | x 4:c41c793e0ef1 added d
+ | |/ () draft
+ | x 3:ca1b80f7960a added c
+ |/ () draft
+ o 2:b1661037fa25 added b
+ | () draft
+ o 1:c7586e2a9264 added a
+ | () draft
+ o 0:8fa14d15e168 added hgignore
+ () draft
+
+ $ hg evolve --all --content-divergent
+ merge:[8] added c
+ with: [10] added c
+ base: [3] added c
+ updating to "local" side of the conflict: 2ba73e31f264
+ merging "other" content-divergent changeset '491e10505bae'
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ nothing changed
+ merge:[5] added d
+ with: [7] added d
+ base: [4] added d
+ updating to "local" side of the conflict: e49523854bc8
+ merging "other" content-divergent changeset 'f0f1694f123e'
+ merging d
+ warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
+ 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+ abort: fix conflicts and run 'hg evolve --continue' or use 'hg update -C .' to abort
+ [255]
+
+XXX: this went wrong and stripped rev 10 also
+ $ hg evolve --abort
+ warning: ignoring unknown working parent 491e10505bae!
+ evolve aborted
+ working directory is now at 491e10505bae
+
+ $ hg glog --hidden
+ @ 9:491e10505bae added c
+ | () draft
+ | x 8:7398f702a162 added c
+ |/ () draft
+ | * 7:f0f1694f123e added d
+ | | () draft
+ | | x 6:9c1631e352d9 added d
+ | |/ () draft
+ | | * 5:e49523854bc8 added d
+ | |/ () draft
+ | | x 4:c41c793e0ef1 added d
+ | |/ () draft
+ | x 3:ca1b80f7960a added c
+ |/ () draft
+ o 2:b1661037fa25 added b
+ | () draft
+ o 1:c7586e2a9264 added a
+ | () draft
+ o 0:8fa14d15e168 added hgignore
+ () draft