--- a/tests/test-evolve-public-content-divergent.t Thu Feb 28 02:08:58 2019 +0530
+++ b/tests/test-evolve-public-content-divergent.t Fri Feb 22 01:02:51 2019 +0530
@@ -698,3 +698,307 @@
$ hg evolve -l
$ cd ..
+
+
+Testing the case when "merging results in same as public cset" where:
+both the csets are on same parent and no conflict in merging.
+---------------------------------------------------------------------
+
+Prepare the repo:
+
+ $ hg init pubdiv5
+ $ cd pubdiv5
+ $ for ch in a b c; do
+ > echo $ch > $ch;
+ > hg ci -Am "added "$ch;
+ > done;
+ adding a
+ adding b
+ adding c
+
+ $ hg up .^
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo ch > ch
+ $ hg add ch
+ $ hg ci -m "added ch"
+ created new head
+
+ $ hg up .^
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo ch > ch
+ $ hg add ch
+ $ hg ci -m "added c"
+ created new head
+
+ $ hg glog
+ @ 4:f7c1071f1e7c added c
+ | draft
+ |
+ | o 3:90522bccf499 added ch
+ |/ draft
+ |
+ | o 2:155349b645be added c
+ |/ draft
+ |
+ o 1:5f6d8a4bf34a added b
+ | draft
+ |
+ o 0:9092f1db7931 added a
+ draft
+
+
+ $ hg prune 2 -s 3
+ 1 changesets pruned
+ $ hg prune 2 -s 4 --hidden
+ 1 changesets pruned
+ 2 new content-divergent changesets
+ $ hg phase --public -r 4
+
+ $ hg glog
+ @ 4:f7c1071f1e7c added c
+ | public
+ |
+ | * 3:90522bccf499 added ch
+ |/ draft content-divergent
+ |
+ o 1:5f6d8a4bf34a added b
+ | public
+ |
+ o 0:9092f1db7931 added a
+ public
+
+ $ hg evolve --content-divergent --any
+ merge:[4] added c
+ with: [3] added ch
+ base: [2] added c
+ merging "other" content-divergent changeset '90522bccf499'
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+ $ hg evolve -l
+
+ $ hg par
+ changeset: 4:f7c1071f1e7c
+ tag: tip
+ parent: 1:5f6d8a4bf34a
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added c
+
+
+Testing the case when "merging results in same as public cset" where:
+both the csets are on different parent and no conflict in merging and relocation.
+---------------------------------------------------------------------------------
+
+Prepare the repo:
+
+ $ cd ..
+ $ hg init pubdiv6
+ $ cd pubdiv6
+ $ for ch in a b c d; do
+ > echo $ch > $ch;
+ > hg ci -Am "added "$ch;
+ > done;
+ adding a
+ adding b
+ adding c
+ adding d
+
+ $ hg up 1
+ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ echo dh > dh
+ $ hg add dh
+ $ hg ci -m "added dh"
+ created new head
+
+ $ hg up 2
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo dh > dh
+ $ hg add dh
+ $ hg ci -m "added d"
+ created new head
+
+ $ hg glog
+ @ 5:e800202333a4 added d
+ | draft
+ |
+ | o 4:5acd58ef5066 added dh
+ | | draft
+ | |
+ +---o 3:9150fe93bec6 added d
+ | | draft
+ | |
+ o | 2:155349b645be added c
+ |/ draft
+ |
+ o 1:5f6d8a4bf34a added b
+ | draft
+ |
+ o 0:9092f1db7931 added a
+ draft
+
+
+ $ hg prune 3 -s 4
+ 1 changesets pruned
+ $ hg prune 3 -s 5 --hidden
+ 1 changesets pruned
+ 2 new content-divergent changesets
+ $ hg phase --public -r 5
+
+ $ hg glog
+ @ 5:e800202333a4 added d
+ | public
+ |
+ | * 4:5acd58ef5066 added dh
+ | | draft content-divergent
+ | |
+ o | 2:155349b645be added c
+ |/ public
+ |
+ o 1:5f6d8a4bf34a added b
+ | public
+ |
+ o 0:9092f1db7931 added a
+ public
+
+ $ hg evolve --content-divergent --any
+ merge:[5] added d
+ with: [4] added dh
+ base: [3] added d
+ rebasing "other" content-divergent changeset 5acd58ef5066 on 155349b645be
+ updating to "local" side of the conflict: e800202333a4
+ merging "other" content-divergent changeset 'ae3429430ef1'
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+ $ hg evolve -l
+
+ $ hg par
+ changeset: 5:e800202333a4
+ tag: tip
+ parent: 2:155349b645be
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added d
+
+Testing the case when "merging results in same as public cset" where:
+both the csets are on same parent and merging leads to conflict.
+---------------------------------------------------------------------
+
+Prepare the repo:
+
+ $ cd ..
+ $ hg init pubdiv7
+ $ cd pubdiv7
+ $ for ch in a b c; do
+ > echo $ch > $ch;
+ > hg ci -Am "added "$ch;
+ > done;
+ adding a
+ adding b
+ adding c
+
+ $ hg up .^
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo chconflict > ch
+ $ hg add ch
+ $ hg ci -m "added ch"
+ created new head
+
+ $ hg up .^
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo ch > ch
+ $ hg add ch
+ $ hg ci -m "added c"
+ created new head
+
+ $ hg glog
+ @ 4:f7c1071f1e7c added c
+ | draft
+ |
+ | o 3:229da2719b19 added ch
+ |/ draft
+ |
+ | o 2:155349b645be added c
+ |/ draft
+ |
+ o 1:5f6d8a4bf34a added b
+ | draft
+ |
+ o 0:9092f1db7931 added a
+ draft
+
+
+ $ hg prune 2 -s 3
+ 1 changesets pruned
+ $ hg prune 2 -s 4 --hidden
+ 1 changesets pruned
+ 2 new content-divergent changesets
+ $ hg phase --public -r 4
+
+ $ hg glog
+ @ 4:f7c1071f1e7c added c
+ | public
+ |
+ | * 3:229da2719b19 added ch
+ |/ draft content-divergent
+ |
+ o 1:5f6d8a4bf34a added b
+ | public
+ |
+ o 0:9092f1db7931 added a
+ public
+
+ $ hg evolve --content-divergent --any
+ merge:[4] added c
+ with: [3] added ch
+ base: [2] added c
+ merging "other" content-divergent changeset '229da2719b19'
+ merging ch
+ warning: conflicts while merging ch! (edit, then use 'hg resolve --mark')
+ 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+ fix conflicts and see `hg help evolve.interrupted`
+ [1]
+
+ $ hg diff
+ diff -r f7c1071f1e7c ch
+ --- a/ch Thu Jan 01 00:00:00 1970 +0000
+ +++ b/ch Thu Jan 01 00:00:00 1970 +0000
+ @@ -1,1 +1,5 @@
+ +<<<<<<< local: f7c1071f1e7c - test: added c
+ ch
+ +=======
+ +chconflict
+ +>>>>>>> other: 229da2719b19 - test: added ch
+
+ $ echo ch > ch
+ $ hg res -m
+ (no more unresolved files)
+ continue: hg evolve --continue
+
+ $ hg evolve --continue
+ computing new diff
+ transaction abort!
+ rollback completed
+ abort: cannot obsolete public changeset: f7c1071f1e7c
+ (see 'hg help phases' for details)
+ [255]
+
+ $ hg evolve -l
+ 229da2719b19: added ch
+ content-divergent: f7c1071f1e7c (public) (precursor 155349b645be)
+
+
+ $ hg par
+ changeset: 4:f7c1071f1e7c
+ tag: tip
+ parent: 1:5f6d8a4bf34a
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added c
+
+ changeset: 3:229da2719b19
+ parent: 1:5f6d8a4bf34a
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ instability: content-divergent
+ summary: added ch
+