diff -r 29733c2b0fd3 -r b2a8e67b0933 tests/test-evolve-public-content-divergent.t --- 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 +