tests: add more test of resolution of content-divergent changesets
This patch adds test of resolution of content-divergent changesets when
relocation is required and it leads to conflicts. The test shows that we are not
doing the right thing. This will be fixed in upcoming patches.
--- a/tests/test-evolve-content-divergence.t Thu Jun 07 18:18:10 2018 +0530
+++ b/tests/test-evolve-content-divergence.t Thu Jun 07 22:45:54 2018 +0530
@@ -593,3 +593,121 @@
+++ b/y Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+bar
+
+Testing when the relocation will result in conflicts and merging wont
+----------------------------------------------------------------------
+
+ $ hg glog
+ @ 20:bbaca013758a added y
+ | () [bar] draft
+ o 14:be41fdcd0ee1 added foo to x
+ | () [bar] draft
+ o 9:b6b20b8eefdc added d
+ | () [default] draft
+ o 8:7c46f743e62f added c
+ | () [default] draft
+ o 5:7ed0642d644b added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft
+
+ $ hg up .^^^^
+ 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
+
+ $ echo z > z
+ $ hg ci -Aqm "added z"
+ $ hg glog -r .
+ @ 21:884c9d1a1a84 added z
+ | () [default] draft
+ ~
+
+ $ echo foo > y
+ $ hg add y
+ $ hg amend
+
+ $ hg up 884c9d1a1a84 --hidden
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ updated to hidden changeset 884c9d1a1a84
+ (hidden revision '884c9d1a1a84' was rewritten as: 3e22a949fe7d)
+ working directory parent is obsolete! (884c9d1a1a84)
+ (use 'hg evolve' to update to its successor: 3e22a949fe7d)
+ $ hg rebase -r . -d bbaca013758a --config experimental.evolution.allowdivergence=True
+ rebasing 21:884c9d1a1a84 "added z"
+ 2 new content-divergent changesets
+
+ $ hg glog
+ @ 23:478a0057fd1a added z
+ | () [bar] draft
+ | * 22:3e22a949fe7d added z
+ | | () [default] draft
+ o | 20:bbaca013758a added y
+ | | () [bar] draft
+ o | 14:be41fdcd0ee1 added foo to x
+ | | () [bar] draft
+ o | 9:b6b20b8eefdc added d
+ | | () [default] draft
+ o | 8:7c46f743e62f added c
+ |/ () [default] draft
+ o 5:7ed0642d644b added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft
+
+ $ hg evolve --content-divergent
+ merge:[23] added z
+ with: [22] added z
+ base: [21] added z
+ rebasing "other" content-divergent changeset 3e22a949fe7d on bbaca013758a
+ merging y
+ warning: conflicts while merging y! (edit, then use 'hg resolve --mark')
+ abort: unresolved merge conflicts (see hg help resolve)
+ [255]
+
+ $ hg diff
+ diff -r bbaca013758a y
+ --- a/y Thu Jan 01 00:00:00 1970 +0000
+ +++ b/y Thu Jan 01 00:00:00 1970 +0000
+ @@ -1,1 +1,5 @@
+ +<<<<<<< destination: bbaca013758a bar - test: added y
+ watbar
+ +=======
+ +foo
+ +>>>>>>> evolving: 3e22a949fe7d - test: added z
+ diff -r bbaca013758a z
+ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+ +++ b/z Thu Jan 01 00:00:00 1970 +0000
+ @@ -0,0 +1,1 @@
+ +z
+
+ $ echo foo > y
+ $ hg resolve -m
+ (no more unresolved files)
+
+XXX: wat?
+ $ hg evolve --continue
+ abort: no interrupted evolve to continue
+ [255]
+
+ $ hg glog
+ * 23:478a0057fd1a added z
+ | () [bar] draft
+ | * 22:3e22a949fe7d added z
+ | | () [default] draft
+ @ | 20:bbaca013758a added y
+ | | () [bar] draft
+ o | 14:be41fdcd0ee1 added foo to x
+ | | () [bar] draft
+ o | 9:b6b20b8eefdc added d
+ | | () [default] draft
+ o | 8:7c46f743e62f added c
+ |/ () [default] draft
+ o 5:7ed0642d644b added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft