Mercurial > evolve
view tests/test-evolve-public-content-divergent-mergingleadstopublic.t @ 4579:e6d7d261ca4a
tests: add --rev to hg evolve to reduce test changes for the next patch
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Wed, 24 Apr 2019 17:02:27 +0800 |
parents | d081cc4f5fef |
children |
line wrap: on
line source
=============================================================================== Tests the resolution of public content divergence: when merging leads to public =============================================================================== This file intend to cover all the cases possible when merging the other divergent cset into public cset leads to public cset itself. Possible variants are: parent: same/different relocation: [no-]conflict merging: [no-]conflict Setup ===== $ cat >> $HGRCPATH <<EOF > [alias] > glog = log -GT "{rev}:{node|short} {desc|firstline}\n {phase} {troubles}\n\n" > [phases] > publish = False > [extensions] > rebase = > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH Testing when same parent, no conflict: -------------------------------------- $ hg init pubdiv1 $ cd pubdiv1 $ 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 content-divergent changesets differ by descriptions only, discarding 90522bccf499 $ 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 $ cd .. Testing when different parent, no conflict: ------------------------------------------- $ hg init pubdiv2 $ cd pubdiv2 $ 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 content-divergent changesets differ by descriptions only, discarding ae3429430ef1 $ 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 $ cd .. Testing when same parent, merging conflict: ------------------------------------------- $ hg init pubdiv3 $ cd pubdiv3 $ 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 content-divergent changesets differ by descriptions only, discarding 229da2719b19 working directory is now at f7c1071f1e7c $ 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 $ cd .. Testing when different parent, relocation conflict: --------------------------------------------------- $ hg init pubdiv4 $ cd pubdiv4 $ 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 $ echo cc > c $ hg add dh c $ 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:f89a8e2f86ac 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:f89a8e2f86ac 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 f89a8e2f86ac on 155349b645be merging c warning: conflicts while merging c! (edit, then use 'hg resolve --mark') fix conflicts and see `hg help evolve.interrupted` [1] $ echo c > c $ hg res -m (no more unresolved files) continue: hg evolve --continue $ hg evolve --continue evolving 4:f89a8e2f86ac "added dh" updating to "local" side of the conflict: e800202333a4 merging "other" content-divergent changeset 'bc309da55b88' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved content-divergent changesets differ by descriptions only, discarding bc309da55b88 working directory is now at e800202333a4 $ 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 $ cd .. Testing when different parent, merging conflict: ------------------------------------------------ $ hg init pubdiv5 $ cd pubdiv5 $ 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 dhconflict > 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:db0b7bba0aae 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:db0b7bba0aae 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 db0b7bba0aae on 155349b645be updating to "local" side of the conflict: e800202333a4 merging "other" content-divergent changeset 'a5bbf2042450' merging dh warning: conflicts while merging dh! (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] $ echo dh > dh $ hg res -m (no more unresolved files) continue: hg evolve --continue $ hg evolve --continue content-divergent changesets differ by descriptions only, discarding a5bbf2042450 working directory is now at e800202333a4 $ 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 $ cd .. Testing when different parent, conflict in relocation and merging: ------------------------------------------------------------------ $ 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 dhconflict > dh $ echo cc > c $ hg add dh c $ 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:67b19bbd770f 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:67b19bbd770f 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 67b19bbd770f on 155349b645be merging c warning: conflicts while merging c! (edit, then use 'hg resolve --mark') fix conflicts and see `hg help evolve.interrupted` [1] $ echo c > c $ hg res -m (no more unresolved files) continue: hg evolve --continue $ hg evolve --continue evolving 4:67b19bbd770f "added dh" updating to "local" side of the conflict: e800202333a4 merging "other" content-divergent changeset '09054d1f3c97' merging dh warning: conflicts while merging dh! (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] $ echo dh > dh $ hg res -m (no more unresolved files) continue: hg evolve --continue $ hg evolve --continue content-divergent changesets differ by descriptions only, discarding 09054d1f3c97 working directory is now at e800202333a4 $ 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 $ cd ..