--- a/tests/test-evolve-content-divergence.t Wed Jun 06 01:19:36 2018 +0530
+++ b/tests/test-evolve-content-divergence.t Mon Jun 04 01:28:02 2018 +0530
@@ -27,8 +27,9 @@
o 0:8fa14d15e168 added hgignore
() [default] draft
-Creating content-divergence with branch change
-----------------------------------------------
+Creating content-divergence with branch change where base, divergent and other
+have different branches
+-------------------------------------------------------------------------------
$ hg branch -r . foobar
changed branch on 1 changesets
@@ -82,3 +83,176 @@
| () [default] draft
o 0:8fa14d15e168 added hgignore
() [default] draft
+
+Testing merging of commit messages
+-----------------------------------
+
+When base and one of the divergent has same commit messages and other divergent
+has different one
+
+ $ echo wat > d
+ $ hg amend
+
+ $ hg up .^
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+ $ echo bar > d
+ $ hg ci -Aqm "added a d with bar in it, expect some beers"
+
+ $ hg prune -r 23a4467c278e -s . --hidden
+ 1 changesets pruned
+ 2 new content-divergent changesets
+
+ $ hg glog
+ @ 9:59081c9c425a added a d with bar in it, expect some beers
+ | () [default] draft
+ | * 8:36618f77f252 added d
+ |/ () [foobar] draft
+ o 3:ca1b80f7960a added c
+ | () [default] draft
+ o 2:b1661037fa25 added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft
+
+ $ hg evolve --content-divergent
+ merge:[9] added a d with bar in it, expect some beers
+ with: [8] added d
+ base: [7] added d
+ merging "other" content-divergent changeset '36618f77f252'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ working directory is now at ca80aeaf4ee8
+
+ $ hg glog
+ @ 10:ca80aeaf4ee8 added a d with bar in it, expect some beers
+ | () [default] draft
+ o 3:ca1b80f7960a added c
+ | () [default] draft
+ o 2:b1661037fa25 added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft
+
+When base has different message and both divergents has same one
+
+ $ echo foo > d
+ $ hg amend -m "foo to d"
+
+ $ hg up ca80aeaf4ee8 --hidden
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ updated to hidden changeset ca80aeaf4ee8
+ (hidden revision 'ca80aeaf4ee8' was rewritten as: eba0b02801cb)
+ working directory parent is obsolete! (ca80aeaf4ee8)
+ (use 'hg evolve' to update to its successor: eba0b02801cb)
+ $ echo babar > d
+ $ hg amend -m "foo to d"
+ 2 new content-divergent changesets
+
+ $ hg glog
+ @ 12:0116315a1a4a foo to d
+ | () [default] draft
+ | * 11:eba0b02801cb foo to d
+ |/ () [default] draft
+ o 3:ca1b80f7960a added c
+ | () [default] draft
+ o 2:b1661037fa25 added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft
+
+ $ hg evolve --content-divergent
+ merge:[12] foo to d
+ with: [11] foo to d
+ base: [10] added a d with bar in it, expect some beers
+ merging "other" content-divergent changeset 'eba0b02801cb'
+ 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]
+
+ $ echo foobar > d
+ $ hg resolve -m
+ (no more unresolved files)
+ continue: hg evolve --continue
+ $ hg evolve --continue
+ working directory is now at 3e0a8df515d6
+
+ $ hg glog
+ @ 13:3e0a8df515d6 foo to d
+ | () [default] draft
+ o 3:ca1b80f7960a added c
+ | () [default] draft
+ o 2:b1661037fa25 added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft
+
+When all three base, divergent and other has different commit messages creating
+conflicts
+
+ $ echo bar > d
+ $ hg amend -m "bar to d, expect beers"
+
+ $ hg up 3e0a8df515d6 --hidden
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ updated to hidden changeset 3e0a8df515d6
+ (hidden revision '3e0a8df515d6' was rewritten as: 9ad4721c9004)
+ working directory parent is obsolete! (3e0a8df515d6)
+ (use 'hg evolve' to update to its successor: 9ad4721c9004)
+ $ echo wat > d
+ $ hg amend -m "wat to d, wat?"
+ 2 new content-divergent changesets
+
+ $ hg glog
+ @ 15:1e834b60df1b wat to d, wat?
+ | () [default] draft
+ | * 14:9ad4721c9004 bar to d, expect beers
+ |/ () [default] draft
+ o 3:ca1b80f7960a added c
+ | () [default] draft
+ o 2:b1661037fa25 added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft
+
+ $ hg evolve --content-divergent
+ merge:[15] wat to d, wat?
+ with: [14] bar to d, expect beers
+ base: [13] foo to d
+ merging "other" content-divergent changeset '9ad4721c9004'
+ 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]
+
+ $ echo watbar > d
+ $ hg resolve -m
+ (no more unresolved files)
+ continue: hg evolve --continue
+ $ hg evolve --continue
+ conflicts while merging descriptions, using description of divergent changeset
+ working directory is now at 578f12701e5a
+
+ $ hg glog
+ @ 16:578f12701e5a wat to d, wat?
+ | () [default] draft
+ o 3:ca1b80f7960a added c
+ | () [default] draft
+ o 2:b1661037fa25 added b
+ | () [default] draft
+ o 1:c7586e2a9264 added a
+ | () [default] draft
+ o 0:8fa14d15e168 added hgignore
+ () [default] draft