# HG changeset patch # User Sushil khanchi # Date 1550863034 -19800 # Node ID dcbe64c954dc78ac90f36d9ddb62410bce205d82 # Parent 8ff5e557432aedb9a6bb1326bdceddd07292967e evolve: add tests of relocation case in public divergence These tests cover the cases when "other" is behind the "public" one and we would have to relocate "other" here. It covers all the conflicting and non-conflicting cases. diff -r 8ff5e557432a -r dcbe64c954dc tests/test-evolve-public-content-divergent.t --- a/tests/test-evolve-public-content-divergent.t Sun Mar 03 16:29:32 2019 +0100 +++ b/tests/test-evolve-public-content-divergent.t Sat Feb 23 00:47:14 2019 +0530 @@ -363,3 +363,336 @@ Check that we don't have any troubled cset now: $ hg evolve -l + $ cd .. + +Testing the case when csets are on different parent and no conflict in relocation and merging: +---------------------------------------------------------------------------------------------- + + $ hg init pubdiv2 + $ cd pubdiv2 + $ for ch in a b c d; do + > echo $ch > $ch; + > hg ci -Aqm "added "$ch; + > done; + + $ hg up .^ + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo dd > d + $ hg add d + $ hg ci -m "added d" + created new head + + $ hg up 1 + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo dd > d + $ echo e > e + $ hg add d e + $ hg ci -m "added d e" + created new head + + $ hg glog + @ 5:4291d72ee19a added d e + | draft + | + | o 4:93cd84bbdaca added d + | | 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 5 + 1 changesets pruned + $ hg prune 3 -s 4 --hidden + 1 changesets pruned + 2 new content-divergent changesets + +Change phase to public for one head: + $ hg phase -r 4 --public + + $ hg glog + @ 5:4291d72ee19a added d e + | draft content-divergent + | + | o 4:93cd84bbdaca added d + | | public + | | + | o 2:155349b645be added c + |/ public + | + o 1:5f6d8a4bf34a added b + | public + | + o 0:9092f1db7931 added a + public + + + $ hg evolve --content-divergent --any + merge:[4] added d + with: [5] added d e + base: [3] added d + rebasing "other" content-divergent changeset 4291d72ee19a on 155349b645be + updating to "local" side of the conflict: 93cd84bbdaca + merging "other" content-divergent changeset 'f88581407163' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + computing new diff + committed as 4cbe48a0c3d9 + working directory is now at 4cbe48a0c3d9 + + $ hg glog -l 1 + @ 8:4cbe48a0c3d9 phase-divergent update to 93cd84bbdaca: + | draft + ~ + + $ hg evolve -l + $ cd .. + +Testing the case when csets are on different parent and conflict in relocation but not in merging: +-------------------------------------------------------------------------------------------------- + + $ hg init pubdiv3 + $ cd pubdiv3 + $ for ch in a b c d; do + > echo $ch > $ch; + > hg ci -Aqm "added "$ch; + > done; + + $ hg up .^^ + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo cfoo > c + $ echo e > e + $ hg add c e + $ hg ci -m "added c e" + created new head + + $ hg up 2 + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo dd > d + $ hg add d + $ hg ci -m "added d" + created new head + + $ hg glog + @ 5:93cd84bbdaca added d + | draft + | + | o 4:e568fd1029bb added c e + | | 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 5 + 1 changesets pruned + $ hg prune 3 -s 4 --hidden + 1 changesets pruned + 2 new content-divergent changesets + +Change phase to public for one head: + $ hg phase --public -r 5 + + $ hg glog + @ 5:93cd84bbdaca added d + | public + | + | * 4:e568fd1029bb added c e + | | 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 c e + base: [3] added d + rebasing "other" content-divergent changeset e568fd1029bb on 155349b645be + merging c + warning: conflicts while merging c! (edit, then use 'hg resolve --mark') + fix conflicts and see `hg help evolve.interrupted` + [1] + + $ hg diff + diff -r 155349b645be c + --- a/c Thu Jan 01 00:00:00 1970 +0000 + +++ b/c Thu Jan 01 00:00:00 1970 +0000 + @@ -1,1 +1,5 @@ + +<<<<<<< destination: 155349b645be - test: added c + c + +======= + +cfoo + +>>>>>>> evolving: e568fd1029bb - test: added c e + diff -r 155349b645be e + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/e Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +e + + $ echo c > c + $ hg res -m + (no more unresolved files) + continue: hg evolve --continue + + $ hg evolve --continue + evolving 4:e568fd1029bb "added c e" + updating to "local" side of the conflict: 93cd84bbdaca + merging "other" content-divergent changeset '2af3359250d3' + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + computing new diff + committed as 06e4564a3897 + working directory is now at 06e4564a3897 + + $ hg evolve -l + $ cd .. + +Testing the case when relocation and merging both leads to conflicts: +-------------------------------------------------------------------- + + $ hg init pubdiv4 + $ cd pubdiv4 + $ for ch in a b c d; do + > echo $ch > $ch; + > hg ci -Aqm "added "$ch; + > done; + + $ hg up .^^ + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo cfoo > c + $ echo e > e + $ echo dconflict > d + $ hg add c e d + $ hg ci -m "added c e" + created new head + + $ hg up 2 + 1 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo dd > d + $ hg add d + $ hg ci -m "added d" + created new head + + $ hg glog + @ 5:93cd84bbdaca added d + | draft + | + | o 4:3c17c7afaf6e added c e + | | 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 5 + 1 changesets pruned + $ hg prune 3 -s 4 --hidden + 1 changesets pruned + 2 new content-divergent changesets + +Change phase to public for one head: + $ hg phase --public -r 5 + + $ hg glog + @ 5:93cd84bbdaca added d + | public + | + | * 4:3c17c7afaf6e added c e + | | 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 c e + base: [3] added d + rebasing "other" content-divergent changeset 3c17c7afaf6e on 155349b645be + merging c + warning: conflicts while merging c! (edit, then use 'hg resolve --mark') + fix conflicts and see `hg help evolve.interrupted` + [1] + + $ hg diff + diff -r 155349b645be c + --- a/c Thu Jan 01 00:00:00 1970 +0000 + +++ b/c Thu Jan 01 00:00:00 1970 +0000 + @@ -1,1 +1,5 @@ + +<<<<<<< destination: 155349b645be - test: added c + c + +======= + +cfoo + +>>>>>>> evolving: 3c17c7afaf6e - test: added c e + diff -r 155349b645be d + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/d Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +dconflict + diff -r 155349b645be e + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/e Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +e + + $ echo cfoo > c + $ hg res -m + (no more unresolved files) + continue: hg evolve --continue + + $ hg evolve --continue + evolving 4:3c17c7afaf6e "added c e" + updating to "local" side of the conflict: 93cd84bbdaca + merging "other" content-divergent changeset 'c4ce3d34e784' + merging d + warning: conflicts while merging d! (edit, then use 'hg resolve --mark') + 2 files updated, 0 files merged, 0 files removed, 1 files unresolved + fix conflicts and see `hg help evolve.interrupted` + [1] + + $ echo d > d + $ hg res -m + (no more unresolved files) + continue: hg evolve --continue + + $ hg evolve --continue + computing new diff + committed as b9082a9e66ce + working directory is now at b9082a9e66ce + + $ hg evolve -l + $ cd ..