# HG changeset patch # User Pierre-Yves David # Date 1521646518 -3600 # Node ID b92114f201c9bda3878a23e0ec0d68a40f7a0aef # Parent 7a5c3175015e6d33e86aee846d0db06b32b23a8f# Parent 7ac98f83ae6d9a0cef486e47682d9b7b059cb141 test-compat: merge mercurial-4.2 into mercurial-4.1 diff -r 7a5c3175015e -r b92114f201c9 hgext3rd/topic/__init__.py diff -r 7a5c3175015e -r b92114f201c9 tests/test-discovery-obshashrange.t --- a/tests/test-discovery-obshashrange.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-discovery-obshashrange.t Wed Mar 21 16:35:18 2018 +0100 @@ -33,8 +33,7 @@ $ hg blackbox * @0000000000000000000000000000000000000000 (*)> serve --stdio (glob) * @0000000000000000000000000000000000000000 (*)> -R server serve --stdio exited 0 after *.?? seconds (glob) - * @0000000000000000000000000000000000000000 (*)> debugbuilddag .+7 (glob) (no-windows !) - * @0000000000000000000000000000000000000000 (*)> debugbuilddag ".+7" (glob) (windows !) + * @0000000000000000000000000000000000000000 (*)> debugbuilddag .+7 (glob) * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) @@ -52,8 +51,7 @@ * @0000000000000000000000000000000000000000 (*)> updated served branch cache in *.???? seconds (glob) * @0000000000000000000000000000000000000000 (*)> wrote served branch cache with 1 labels and 1 nodes (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (8r, 0o) (glob) - * @0000000000000000000000000000000000000000 (*)> debugbuilddag .+7 exited 0 after *.?? seconds (glob) (no-windows !) - * @0000000000000000000000000000000000000000 (*)> debugbuilddag ".+7" exited 0 after *.?? seconds (glob) (windows !) + * @0000000000000000000000000000000000000000 (*)> debugbuilddag .+7 exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> blackbox (glob) $ rm .hg/blackbox.log $ hg log -G @@ -97,7 +95,7 @@ * @0000000000000000000000000000000000000000 (*)> debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 01241442b3c2bf3211e593b549c655ea65b295e3 (glob) * @0000000000000000000000000000000000000000 (*)> alias 'debugobsolete' expands to 'debugobsolete -d '0 0'' (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (0r, 1o) (glob) - * @0000000000000000000000000000000000000000 (*)> debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 01241442b3c2bf3211e593b549c655ea65b295e3 --config *experimental.obshashrange.max-revs=1* exited 0 after *.?? seconds (glob) + * @0000000000000000000000000000000000000000 (*)> debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 01241442b3c2bf3211e593b549c655ea65b295e3 --config experimental.obshashrange.max-revs=1 exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> debugobsolete cccccccccccccccccccccccccccccccccccccccc bebd167eb94d257ace0e814aeb98e6972ed2970d (glob) * @0000000000000000000000000000000000000000 (*)> alias 'debugobsolete' expands to 'debugobsolete -d '0 0'' (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (0r, 1o) (glob) @@ -105,7 +103,7 @@ * @0000000000000000000000000000000000000000 (*)> debugobsolete dddddddddddddddddddddddddddddddddddddddd c8d03c1b5e94af74b772900c58259d2e08917735 (glob) * @0000000000000000000000000000000000000000 (*)> alias 'debugobsolete' expands to 'debugobsolete -d '0 0'' (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (0r, 1o) (glob) - * @0000000000000000000000000000000000000000 (*)> debugobsolete dddddddddddddddddddddddddddddddddddddddd c8d03c1b5e94af74b772900c58259d2e08917735 --config *experimental.obshashrange.warm-cache=0* exited 0 after *.?? seconds (glob) + * @0000000000000000000000000000000000000000 (*)> debugobsolete dddddddddddddddddddddddddddddddddddddddd c8d03c1b5e94af74b772900c58259d2e08917735 --config experimental.obshashrange.warm-cache=0 exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> debugobsolete eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 4de32a90b66cd083ebf3c00b41277aa7abca51dd (glob) * @0000000000000000000000000000000000000000 (*)> alias 'debugobsolete' expands to 'debugobsolete -d '0 0'' (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (0r, 1o) (glob) @@ -188,7 +186,7 @@ $ hg debugobsolete ffffffffffffffffffffffffffffffffffffffff `getid '.'` $ hg push -f --debug pushing to ssh://user@dummy/server - running python "*/dummyssh" *user@dummy* *hg -R server serve --stdio* (glob) + running python "*/dummyssh" user@dummy 'hg -R server serve --stdio' (glob) sending hello command sending between command remote: * (glob) @@ -391,10 +389,10 @@ (run 'hg heads' to see heads, 'hg merge' to merge) $ hg -R ../server blackbox - * @0000000000000000000000000000000000000000 (*)> debugobsolete --rev '::tip' (glob) + * @0000000000000000000000000000000000000000 (*)> debugobsolete --rev ::tip (glob) * @0000000000000000000000000000000000000000 (*)> alias 'debugobsolete' expands to 'debugobsolete -d '0 0'' (glob) * @0000000000000000000000000000000000000000 (*)> writing .hg/cache/tags2-visible with 0 tags (glob) - * @0000000000000000000000000000000000000000 (*)> -R ../server/ debugobsolete --rev '::tip' exited 0 after *.?? seconds (glob) + * @0000000000000000000000000000000000000000 (*)> -R ../server/ debugobsolete --rev ::tip exited 0 after *.?? seconds (glob) * @0000000000000000000000000000000000000000 (*)> debugobsolete aaaaaaa11111111aaaaaaaaa1111111111111111 66f7d451a68b85ed82ff5fcc254daf50c74144bd (glob) * @0000000000000000000000000000000000000000 (*)> alias 'debugobsolete' expands to 'debugobsolete -d '0 0'' (glob) * @0000000000000000000000000000000000000000 (*)> updated evo-ext-obscache in *.???? seconds (0r, 1o) (glob) @@ -499,22 +497,18 @@ 3 2dc09a01254d 3 1 4 26f996446ecb 1 66f7d451a68b 1 1 2 327c7dd73d29 $ hg blackbox - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobsolete --rev '::6' (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobsolete --rev ::6 (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobsolete --rev ::6 (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> alias 'debugobsolete' expands to 'debugobsolete -d '0 0'' (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> writing .hg/cache/tags2-visible with 0 tags (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobsolete --rev '::6' exited 0 after *.?? seconds (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobsolete --rev ::6 exited 0 after *.?? seconds (glob) (windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev "heads(all())" (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobsolete --rev ::6 exited 0 after *.?? seconds (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev heads(all()) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-stablerange-mergepoint cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-depthcache cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-depthcache in *.???? seconds (8r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-stablerange-mergepoint in *.???? seconds (8r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obshashcache clean - new markers affect 2 changeset and cached ranges (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (2r, 3o) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' exited 0 after *.?? seconds (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev "heads(all())" exited 0 after *.?? seconds (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev heads(all()) exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull -r f69452c5b1af6cbaaa56ef50cf94fff5bcc6ca23 (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-stablerange-mergepoint cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-depthcache cache reset (glob) @@ -523,16 +517,14 @@ * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obsdiscovery, 2/7 mismatch - 1 obshashrange queries in *.???? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obscache in *.???? seconds (0r, 2o) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull -r f69452c5b1af6cbaaa56ef50cf94fff5bcc6ca23 exited 0 after *.?? seconds (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'desc("r3")' (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev "desc(\"r3\")" (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev desc("r3") (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-stablerange-mergepoint cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-depthcache cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-depthcache in *.???? seconds (8r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-stablerange-mergepoint in *.???? seconds (8r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obshashcache clean - new markers affect 2 changeset and cached ranges (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (0r, 2o) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'desc("r3")' exited 0 after *.?? seconds (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev "desc(\"r3\")" exited 0 after *.?? seconds (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev desc("r3") exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> blackbox (glob) $ rm .hg/blackbox.log @@ -591,16 +583,14 @@ $ hg rollback repository tip rolled back to revision 7 (undo pull) $ hg blackbox - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev "heads(all())" (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev heads(all()) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-stablerange-mergepoint cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-depthcache cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-depthcache in *.???? seconds (8r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-stablerange-mergepoint in *.???? seconds (8r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> obshashcache clean - new markers affect 1 changeset and cached ranges (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (0r, 1o) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' exited 0 after *.?? seconds (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev "heads(all())" exited 0 after *.?? seconds (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev heads(all()) exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-stablerange-mergepoint cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-depthcache cache reset (glob) @@ -648,12 +638,12 @@ 1 new obsolescence markers (run 'hg update' to get a working copy) $ hg blackbox - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev heads(all()) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-stablerange-mergepoint cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-depthcache cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-depthcache in *.???? seconds (8r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-stablerange-mergepoint in *.???? seconds (8r) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' exited 0 after *.?? seconds (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev heads(all()) exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> pull (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-stablerange-mergepoint cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-depthcache cache reset (glob) @@ -761,19 +751,17 @@ o 0 1ea73414a91b r0 $ hg blackbox - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev "heads(all())" (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev heads(all()) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> writing .hg/cache/tags2-visible with 0 tags (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-stablerange-mergepoint cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip detected, evo-ext-depthcache cache reset (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-depthcache in *.???? seconds (9r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-stablerange-mergepoint in *.???? seconds (9r) (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> updated evo-ext-obshashrange in *.???? seconds (1r, 1o) (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev 'heads(all())' exited 0 after *.?? seconds (glob) (no-windows !) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev "heads(all())" exited 0 after *.?? seconds (glob) (windows !) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> debugobshashrange --subranges --rev heads(all()) exited 0 after *.?? seconds (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> log -G (glob) * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> log -G exited 0 after *.?? seconds (glob) - * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip -r 'desc("foo")' (glob) + * @45f8b879de922f6a6e620ba04205730335b6fc7e (*)> strip -r desc("foo") (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> saved backup bundle to $TESTTMP/client/.hg/strip-backup/45f8b879de92-94c82517-backup.hg (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> strip detected, evo-ext-obscache cache reset (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated evo-ext-obscache in *.???? seconds (5r, 13o) (glob) @@ -781,8 +769,7 @@ * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> updated base branch cache in *.???? seconds (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> wrote base branch cache with 1 labels and 1 nodes (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> 3 incoming changes - new heads: 4de32a90b66c (glob) - * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> --config 'extensions.strip=' strip -r 'desc("foo")' exited 0 after *.?? seconds (glob) (no-windows !) - * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> --config "extensions.strip=" strip -r "desc(\"foo\")" exited 0 after *.?? seconds (glob) (windows !) + * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> --config extensions.strip= strip -r desc("foo") exited 0 after *.?? seconds (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> log -G (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> writing .hg/cache/tags2-visible with 0 tags (glob) * @bebd167eb94d257ace0e814aeb98e6972ed2970d (*)> log -G exited 0 after *.?? seconds (glob) diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-continue.t --- a/tests/test-evolve-continue.t Wed Mar 21 16:32:54 2018 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,375 +0,0 @@ -Testing the continue functionality of `hg evolve` - - $ cat >> $HGRCPATH < [ui] - > interactive = True - > [alias] - > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}" - > [extensions] - > rebase = - > EOF - $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH - -Setting up the repo - - $ hg init repo - $ cd repo - $ echo ".*\.orig" > .hgignore - $ hg add .hgignore - $ hg ci -m "added hgignore" - $ for ch in a b c d; do echo foo>$ch; hg add $ch; hg ci -qm "added "$ch; done - - $ hg glog - @ 4:c41c793e0ef1 added d - | () draft - o 3:ca1b80f7960a added c - | () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -Simple case of evolve --continue - - $ hg up ca1b80f7960a - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ echo bar > d - $ hg add d - $ hg amend - 1 new unstable changesets - $ hg glog - @ 6:cb6a2ab625bb added c - | () draft - | o 4:c41c793e0ef1 added d - | | () draft - | x 3:ca1b80f7960a added c - |/ () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --all - move:[4] added d - atop:[6] added c - merging d - warning: conflicts while merging d! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo foo > d - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - - $ hg evolve --continue - evolving 4:c41c793e0ef1 "added d" - working directory is now at 2a4e03d422e2 - - $ hg glog - @ 7:2a4e03d422e2 added d - | () draft - o 6:cb6a2ab625bb added c - | () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -Case when conflicts resolution lead to empty wdir in evolve --continue - - $ echo foo > e - $ hg ci -Aqm "added e" - $ hg prev - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [7] added d - $ echo bar > e - $ hg add e - $ hg amend - 1 new unstable changesets - - $ hg glog - @ 10:00a5c774cc37 added d - | () draft - | o 8:ad0a59d83efe added e - | | () draft - | x 7:2a4e03d422e2 added d - |/ () draft - o 6:cb6a2ab625bb added c - | () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve - move:[8] added e - atop:[10] added d - merging e - warning: conflicts while merging e! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo bar > e - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - $ hg diff - -XXX: maybe we should add a message here about evolve resulting in no commit - $ hg evolve --continue - evolving 8:ad0a59d83efe "added e" - - $ hg glog - @ 10:00a5c774cc37 added d - | () draft - o 6:cb6a2ab625bb added c - | () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -Case when there are a lot of revision to continue - - $ hg up c7586e2a9264 - 0 files updated, 0 files merged, 4 files removed, 0 files unresolved - $ echo bar > b - $ hg add b - $ hg amend - 3 new unstable changesets - - $ hg evolve --all - move:[2] added b - atop:[12] added a - merging b - warning: conflicts while merging b! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo foo > b - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - $ hg evolve --continue - evolving 2:b1661037fa25 "added b" - move:[6] added c - atop:[13] added b - move:[10] added d - atop:[14] added c - working directory is now at 6642d2c9176e - - $ hg glog - @ 15:6642d2c9176e added d - | () draft - o 14:95665a2de664 added c - | () draft - o 13:87f748868183 added b - | () draft - o 12:53b632d203d8 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -Conlicts -> resolve -> continue -> conflicts -> resolve -> continue -Test multiple conflicts in one evolve - - $ for ch in f g h; do echo foo > $ch; hg add $ch; hg ci -m "added "$ch; done; - - $ hg glog - @ 18:09becba8f97d added h - | () draft - o 17:5aa7b2bbd944 added g - | () draft - o 16:be88f889b6dc added f - | () draft - o 15:6642d2c9176e added d - | () draft - o 14:95665a2de664 added c - | () draft - o 13:87f748868183 added b - | () draft - o 12:53b632d203d8 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg up 95665a2de664 - 1 files updated, 0 files merged, 4 files removed, 0 files unresolved - - $ echo bar > f - $ echo bar > h - $ hg add f h - $ hg amend - 4 new unstable changesets - - $ hg glog - @ 20:645135c5caa4 added c - | () draft - | o 18:09becba8f97d added h - | | () draft - | o 17:5aa7b2bbd944 added g - | | () draft - | o 16:be88f889b6dc added f - | | () draft - | o 15:6642d2c9176e added d - | | () draft - | x 14:95665a2de664 added c - |/ () draft - o 13:87f748868183 added b - | () draft - o 12:53b632d203d8 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --all - move:[15] added d - atop:[20] added c - move:[16] added f - atop:[21] added d - merging f - warning: conflicts while merging f! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo foo > f - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - $ hg evolve --continue - evolving 16:be88f889b6dc "added f" - move:[17] added g - atop:[22] added f - move:[18] added h - atop:[23] added g - merging h - warning: conflicts while merging h! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo foo > h - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - $ hg evolve --continue - evolving 18:09becba8f97d "added h" - working directory is now at 3ba9d3d1b089 - -Make sure, confirmopt is respected while continue - - $ hg glog - @ 24:3ba9d3d1b089 added h - | () draft - o 23:981e615b14ca added g - | () draft - o 22:5794f1a3cbb2 added f - | () draft - o 21:e47537da02b3 added d - | () draft - o 20:645135c5caa4 added c - | () draft - o 13:87f748868183 added b - | () draft - o 12:53b632d203d8 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg up 5794f1a3cbb2 - 1 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ echo bar > g - $ hg add g - $ hg amend - 2 new unstable changesets - - $ hg evolve --all --confirm< y - > EOF - move:[23] added g - atop:[26] added f - perform evolve? [Ny] y - merging g - warning: conflicts while merging g! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo foo > g - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - -XXX: this should have asked for confirmation - - $ hg evolve --continue< y - > EOF - evolving 23:981e615b14ca "added g" - move:[24] added h - atop:[27] added g - perform evolve? [Ny] y - working directory is now at af6bd002a48d - - $ hg glog - @ 28:af6bd002a48d added h - | () draft - o 27:d2c94a8f44bd added g - | () draft - o 26:9849fa96c885 added f - | () draft - o 21:e47537da02b3 added d - | () draft - o 20:645135c5caa4 added c - | () draft - o 13:87f748868183 added b - | () draft - o 12:53b632d203d8 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -Testing `evolve --continue` after `hg next --evolve` - - $ hg up .^^ - 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ echo foobar > g - $ hg amend - 2 new unstable changesets - - $ hg next --evolve - move:[27] added g - atop:[30] added f - merging g - warning: conflicts while merging g! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - $ echo foo > g - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - $ hg evolve --continue - evolving 27:d2c94a8f44bd "added g" diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-cycles.t --- a/tests/test-evolve-cycles.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-evolve-cycles.t Wed Mar 21 16:35:18 2018 +0100 @@ -292,8 +292,8 @@ 0 ], "effect": [ - *, (glob) - *, (glob) + "description", + "parent", "content" ], "succnodes": [ @@ -315,8 +315,8 @@ 0 ], "effect": [ - *, (glob) - *, (glob) + "description", + "parent", "content" ], "succnodes": [ diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-obshistory.t --- a/tests/test-evolve-obshistory.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-evolve-obshistory.t Wed Mar 21 16:35:18 2018 +0100 @@ -12,6 +12,7 @@ > publish=False > [extensions] > evolve = + > color = > [experimental] > evolution.effect-flags = yes > EOF @@ -204,7 +205,7 @@ ] $ hg update 471f378eab4c abort: hidden revision '471f378eab4c'! - (use --hidden to access hidden revisions; successor: 4ae3a4151de9) + (use --hidden to access hidden revisions) [255] $ hg update --hidden "desc(A0)" 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -303,7 +304,7 @@ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg up 0dec01379d3b abort: hidden revision '0dec01379d3b'! - (use --hidden to access hidden revisions; pruned) + (use --hidden to access hidden revisions) [255] $ hg up --hidden -r 'desc(B0)' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -499,7 +500,7 @@ $ hg update 471597cad322 abort: hidden revision '471597cad322'! - (use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a) + (use --hidden to access hidden revisions) [255] $ hg update --hidden 'min(desc(A0))' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -775,7 +776,7 @@ $ hg update de7290d8b885 abort: hidden revision 'de7290d8b885'! - (use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a and 2 more) + (use --hidden to access hidden revisions) [255] $ hg update --hidden 'min(desc(A0))' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -994,7 +995,7 @@ ] $ hg update 471f378eab4c abort: hidden revision '471f378eab4c'! - (use --hidden to access hidden revisions; successor: eb5a0daa2192) + (use --hidden to access hidden revisions) [255] $ hg update --hidden 'desc(A0)' 0 files updated, 0 files merged, 1 files removed, 0 files unresolved @@ -1002,7 +1003,7 @@ (use 'hg evolve' to update to its successor: eb5a0daa2192) $ hg update 0dec01379d3b abort: hidden revision '0dec01379d3b'! - (use --hidden to access hidden revisions; successor: eb5a0daa2192) + (use --hidden to access hidden revisions) [255] $ hg update --hidden 'desc(B0)' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -1328,7 +1329,7 @@ ] $ hg update 471f378eab4c abort: hidden revision '471f378eab4c'! - (use --hidden to access hidden revisions; diverged) + (use --hidden to access hidden revisions) [255] $ hg update --hidden 'desc(A0)' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -1550,7 +1551,7 @@ ] $ hg update 471f378eab4c abort: hidden revision '471f378eab4c'! - (use --hidden to access hidden revisions; successor: eb5a0daa2192) + (use --hidden to access hidden revisions) [255] $ hg update --hidden 'desc(A0)' 0 files updated, 0 files merged, 1 files removed, 0 files unresolved diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-orphan-merge.t --- a/tests/test-evolve-orphan-merge.t Wed Mar 21 16:32:54 2018 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,606 +0,0 @@ -** Testing resolution of orphans by `hg evolve` when merges are involved ** - - $ cat >> $HGRCPATH < [ui] - > interactive = True - > [alias] - > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}" - > [extensions] - > rebase = - > EOF - $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH - -Repo Setup - - $ hg init repo - $ cd repo - $ echo ".*\.orig" > .hgignore - $ hg add .hgignore - $ hg ci -m "added hgignore" - -An orphan merge changeset with one of the parent obsoleted -========================================================== - -1) When merging both the parents does not result in conflicts -------------------------------------------------------------- - - $ echo foo > a - $ hg ci -Aqm "added a" - $ hg up .^ - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ echo foo > b - $ hg ci -Aqm "added b" - $ hg merge - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - (branch merge, don't forget to commit) - $ hg ci -m "merging a and b" - - $ hg glog - @ 3:3b2b6f4652ee merging a and b - |\ () draft - | o 2:d76850646258 added b - | | () draft - o | 1:c7586e2a9264 added a - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - -Testing with obsoleting the second parent - - $ hg up d76850646258 - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ echo bar > b - $ hg amend - 1 new unstable changesets - - $ hg glog - @ 5:64370c9805e7 added b - | () draft - | o 3:3b2b6f4652ee merging a and b - | |\ () draft - +---x 2:d76850646258 added b - | | () draft - | o 1:c7586e2a9264 added a - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --all - move:[3] merging a and b - atop:[5] added b - working directory is now at 91fd62122a4b - - $ hg glog - @ 6:91fd62122a4b merging a and b - |\ () draft - | o 5:64370c9805e7 added b - | | () draft - o | 1:c7586e2a9264 added a - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg parents - changeset: 6:91fd62122a4b - tag: tip - parent: 5:64370c9805e7 - parent: 1:c7586e2a9264 - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: merging a and b - - -Testing with obsoleting the first parent - - $ hg up c7586e2a9264 - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ echo bar > a - $ hg amend - 1 new unstable changesets - - $ hg glog - @ 8:3d41537b44ca added a - | () draft - | o 6:91fd62122a4b merging a and b - | |\ () draft - +---o 5:64370c9805e7 added b - | | () draft - | x 1:c7586e2a9264 added a - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --all - move:[6] merging a and b - atop:[8] added a - working directory is now at 968d205ba4d8 - - $ hg glog - @ 9:968d205ba4d8 merging a and b - |\ () draft - | o 8:3d41537b44ca added a - | | () draft - o | 5:64370c9805e7 added b - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg parents - changeset: 9:968d205ba4d8 - tag: tip - parent: 8:3d41537b44ca - parent: 5:64370c9805e7 - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: merging a and b - -2) When merging both the parents resulted in conflicts ------------------------------------------------------- - - $ hg up 8fa14d15e168 - 0 files updated, 0 files merged, 2 files removed, 0 files unresolved - $ echo foo > c - $ hg ci -Aqm "foo to c" - $ hg prev - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [0] added hgignore - $ echo bar > c - $ hg ci -Aqm "bar to c" - - $ hg glog - @ 11:d0f84b25d4e3 bar to c - | () draft - | o 10:1c165c673853 foo to c - |/ () draft - | o 9:968d205ba4d8 merging a and b - | |\ () draft - +---o 8:3d41537b44ca added a - | | () draft - | o 5:64370c9805e7 added b - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - -Prune old test changesets to have clear graph view - $ hg prune -r 64370c9805e7 -r 3d41537b44ca -r 968d205ba4d8 - 3 changesets pruned - - $ hg glog - @ 11:d0f84b25d4e3 bar to c - | () draft - | o 10:1c165c673853 foo to c - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg merge - merging c - warning: conflicts while merging c! (edit, then use 'hg resolve --mark') - 0 files updated, 0 files merged, 0 files removed, 1 files unresolved - use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon - [1] - $ echo foobar > c - $ hg resolve -m - (no more unresolved files) - $ hg ci -m "foobar to c" - - $ hg glog - @ 12:fd41d25a3e90 foobar to c - |\ () draft - | o 11:d0f84b25d4e3 bar to c - | | () draft - o | 10:1c165c673853 foo to c - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - -Testing with first parent obsoleted - - $ hg up 1c165c673853 - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ echo FOO > c - $ hg amend - 1 new unstable changesets - - $ hg glog - @ 14:31c317b7bdb1 foo to c - | () draft - | o 12:fd41d25a3e90 foobar to c - | |\ () draft - +---o 11:d0f84b25d4e3 bar to c - | | () draft - | x 10:1c165c673853 foo to c - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --all - move:[12] foobar to c - atop:[14] foo to c - merging c - warning: conflicts while merging c! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo FOObar > c - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - $ hg evolve --continue - evolving 12:fd41d25a3e90 "foobar to c" - working directory is now at c5405d2da7a1 - - $ hg glog - @ 15:c5405d2da7a1 foobar to c - |\ () draft - | o 14:31c317b7bdb1 foo to c - | | () draft - o | 11:d0f84b25d4e3 bar to c - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg parents - changeset: 15:c5405d2da7a1 - tag: tip - parent: 11:d0f84b25d4e3 - parent: 14:31c317b7bdb1 - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: foobar to c - -Testing a conlficting merge with second parent obsoleted - - $ hg up 31c317b7bdb1 - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ echo foo > c - $ hg amend - 1 new unstable changesets - - $ hg glog - @ 17:928097d0b5b5 foo to c - | () draft - | o 15:c5405d2da7a1 foobar to c - | |\ () draft - +---x 14:31c317b7bdb1 foo to c - | | () draft - | o 11:d0f84b25d4e3 bar to c - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --all - move:[15] foobar to c - atop:[17] foo to c - merging c - warning: conflicts while merging c! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo foobar > c - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - - $ hg evolve --continue - evolving 15:c5405d2da7a1 "foobar to c" - working directory is now at dc1948a6eeab - - $ hg glog - @ 18:dc1948a6eeab foobar to c - |\ () draft - | o 17:928097d0b5b5 foo to c - | | () draft - o | 11:d0f84b25d4e3 bar to c - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - -3) When stabilizing other changesets resulted in orphan merge changeset ------------------------------------------------------------------------ - - $ hg prune -r d0f84b25d4e3 -r 928097d0b5b5 -r dc1948a6eeab - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - working directory now at 8fa14d15e168 - 3 changesets pruned - - $ for ch in l m; do echo foo > $ch; hg ci -Aqm "added "$ch; done; - $ hg up 8fa14d15e168 - 0 files updated, 0 files merged, 2 files removed, 0 files unresolved - $ for ch in x y; do echo foo > $ch; hg ci -Aqm "added "$ch; done; - $ hg glog - @ 22:863d11043c67 added y - | () draft - o 21:3f2247835c1d added x - | () draft - | o 20:e44dc179e7f5 added m - | | () draft - | o 19:8634bee7bf1e added l - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg merge - 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - (branch merge, don't forget to commit) - $ hg ci -m "merge commit" - - $ hg up 8634bee7bf1e - 0 files updated, 0 files merged, 3 files removed, 0 files unresolved - $ echo bar > l - $ hg amend - 2 new unstable changesets - - $ hg glog - @ 25:fccc9de66799 added l - | () draft - | o 23:190763373d8b merge commit - | |\ () draft - | | o 22:863d11043c67 added y - | | | () draft - +---o 21:3f2247835c1d added x - | | () draft - | o 20:e44dc179e7f5 added m - | | () draft - | x 19:8634bee7bf1e added l - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - $ hg evolve --all - move:[20] added m - atop:[25] added l - move:[23] merge commit - atop:[26] added m - working directory is now at a446ad3e6700 - - $ hg glog - @ 27:a446ad3e6700 merge commit - |\ () draft - | o 26:495d2039f8f1 added m - | | () draft - | o 25:fccc9de66799 added l - | | () draft - o | 22:863d11043c67 added y - | | () draft - o | 21:3f2247835c1d added x - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - -4) When both the parents of the merge changeset are obsolete with a succ ------------------------------------------------------------------------- - - $ hg prune -r a446ad3e6700 -r 495d2039f8f1 -r 863d11043c67 - 0 files updated, 0 files merged, 3 files removed, 0 files unresolved - working directory now at fccc9de66799 - 3 changesets pruned - - $ hg glog - @ 25:fccc9de66799 added l - | () draft - | o 21:3f2247835c1d added x - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg merge - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - (branch merge, don't forget to commit) - $ hg ci -m "merged l and x" - - $ hg up fccc9de66799 - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ echo foobar > l - $ hg amend - 1 new unstable changesets - $ hg up 3f2247835c1d - 1 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ echo bar > x - $ hg amend - $ hg glog - @ 32:cdf6547da25f added x - | () draft - | o 30:3f371171d767 added l - |/ () draft - | o 28:7b78a9784f3e merged l and x - | |\ () draft - +---x 25:fccc9de66799 added l - | | () draft - | x 21:3f2247835c1d added x - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - -XXX: We should handle this case too - $ hg evolve --all - move:[28] merged l and x - atop:[32] added x - move:[33] merged l and x - atop:[30] added l - working directory is now at adb665a78e08 - - $ hg glog - @ 34:adb665a78e08 merged l and x - |\ () draft - | o 32:cdf6547da25f added x - | | () draft - o | 30:3f371171d767 added l - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg exp - # HG changeset patch - # User test - # Date 0 0 - # Thu Jan 01 00:00:00 1970 +0000 - # Node ID adb665a78e08b962cff415301058d782086c0f33 - # Parent 3f371171d767ef79cf85d156cf46d4035960fcf0 - # Parent cdf6547da25f1ca5d01102302ad713f444547b48 - merged l and x - - diff -r 3f371171d767 -r adb665a78e08 x - --- /dev/null Thu Jan 01 00:00:00 1970 +0000 - +++ b/x Thu Jan 01 00:00:00 1970 +0000 - @@ -0,0 +1,1 @@ - +bar - - $ hg parents - changeset: 34:adb665a78e08 - tag: tip - parent: 30:3f371171d767 - parent: 32:cdf6547da25f - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: merged l and x - - -5) When one of the merge parent is pruned without a successor -------------------------------------------------------------- - - $ hg prune -r cdf6547da25f - 1 changesets pruned - 1 new unstable changesets - $ hg glog - @ 34:adb665a78e08 merged l and x - |\ () draft - | x 32:cdf6547da25f added x - | | () draft - o | 30:3f371171d767 added l - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --rev . - move:[34] merged l and x - atop:[0] added hgignore - working directory is now at fb8fe870ae7d - - $ hg glog - @ 35:fb8fe870ae7d merged l and x - |\ () draft - | o 30:3f371171d767 added l - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - -6) When one parent is pruned without successor and the other parent of merge is -the parent of the pruned commit --------------------------------------------------------------------------------- - - $ hg glog - @ 35:fb8fe870ae7d merged l and x - |\ () draft - | o 30:3f371171d767 added l - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg prune -r 3f371171d767 - 1 changesets pruned - 1 new unstable changesets - - $ hg glog - @ 35:fb8fe870ae7d merged l and x - |\ () draft - | x 30:3f371171d767 added l - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - -This is the right thing to do here. When you have a merge changeset, and one -parent is pruned and parent of that pruned parent is same as another parent of -the merge changeset, that should lead to merge changeset being a non-merge -changeset and non-pruned changeset as its only parent - -If you look at the above graph, the side part: - -\ - x -/ - -is redundant now as the changeset is pruned and we should remove this chain -while evolving. - -This case can occur a lot of times in workflows where people make branches and -merge them again. After getting their work done, they may want to get rid of -that branch and they prune all their changeset, which will result in this -case where merge commit becomes orphan with its ancestors pruned up until a -point where the other parent of merge is the first non-pruned ancestor. - - $ hg evolve -r . - move:[35] merged l and x - atop:[0] added hgignore - working directory is now at b61ba77b924a - - $ hg glog - @ 36:b61ba77b924a merged l and x - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -7) When one parent is pruned without successor and has no parent ----------------------------------------------------------------- - - $ hg prune -r . - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - working directory now at 8fa14d15e168 - 1 changesets pruned - $ hg up null - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - - $ echo foo > foo - $ hg add foo - $ hg ci -m "added foo" - created new head - - $ hg merge - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - (branch merge, don't forget to commit) - $ hg ci -m "merge commit" - $ hg glog - @ 38:32beb84b9dbc merge commit - |\ () draft - | o 37:f3ba8b99bb6f added foo - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg prune -r f3ba8b99bb6f - 1 changesets pruned - 1 new unstable changesets - - $ hg glog - @ 38:32beb84b9dbc merge commit - |\ () draft - | x 37:f3ba8b99bb6f added foo - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -The current behavior seems to be the correct behavior in the above case. This is -also another case which can arise flow merge workflow where people start a -branch from null changeset and merge it and then prune it or get rid of it. - -Also if you look at the above graph, the side part: - -\ - x - -becomes redundant as the changeset is pruned without successor and we should -just remove that chain. - - $ hg evolve -r . - move:[38] merge commit - atop:[-1] - working directory is now at d2a03dd8c951 - - $ hg glog - @ 39:d2a03dd8c951 merge commit - | () draft - o 0:8fa14d15e168 added hgignore - () draft diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-orphan-split.t --- a/tests/test-evolve-orphan-split.t Wed Mar 21 16:32:54 2018 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,276 +0,0 @@ -** Testing resolution of orphans by `hg evolve` where an obsolete changeset has -multiple successors ** - - $ cat >> $HGRCPATH < [defaults] - > amend=-d "0 0" - > fold=-d "0 0" - > split=-d "0 0" - > amend=-d "0 0" - > [ui] - > interactive = True - > [alias] - > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}" - > [extensions] - > rebase = - > EOF - $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH - -Repo Setup - - $ hg init repo - $ cd repo - $ echo ".*\.orig" > .hgignore - $ hg add .hgignore - $ hg ci -m "added hgignore" - -An orphan changeset with parent got splitted --------------------------------------------- - - $ for ch in a b c; do echo foo > $ch; done; - - $ hg add a b - $ hg ci -m "added a and b" - $ hg add c - $ hg ci -m "added c" - - $ hg glog - @ 2:86e1ebf1ca61 added c - | () draft - o 1:d0ddb614efbd added a and b - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg split -r 1 < y - > y - > n - > y - > EOF - 0 files updated, 0 files merged, 3 files removed, 0 files unresolved - adding a - adding b - diff --git a/a b/a - new file mode 100644 - examine changes to 'a'? [Ynesfdaq?] y - - @@ -0,0 +1,1 @@ - +foo - record change 1/2 to 'a'? [Ynesfdaq?] y - - diff --git a/b b/b - new file mode 100644 - examine changes to 'b'? [Ynesfdaq?] n - - created new head - Done splitting? [yN] y - - $ hg glog - @ 4:8b179cffc81c added a and b - | () draft - o 3:bd3735d4dab0 added a and b - | () draft - | o 2:86e1ebf1ca61 added c - | | () draft - | x 1:d0ddb614efbd added a and b - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve - move:[2] added c - atop:[4] added a and b - working directory is now at af13f0560b31 - - $ hg glog - @ 5:af13f0560b31 added c - | () draft - o 4:8b179cffc81c added a and b - | () draft - o 3:bd3735d4dab0 added a and b - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -When the successors does not form a linear chain and are multiple heads ------------------------------------------------------------------------ - - $ hg fold -r .^^::. --exact -m "added a b c" - 3 changesets folded - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - - $ hg glog - @ 6:f89e4764f2ed added a b c - | () draft - o 0:8fa14d15e168 added hgignore - () draft - $ echo foo > d - $ hg ci -Aqm "added d" - - $ hg glog - @ 7:d48a30875f01 added d - | () draft - o 6:f89e4764f2ed added a b c - | () draft - o 0:8fa14d15e168 added hgignore - () draft - $ hg prev - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [6] added a b c - $ hg split -r . < y - > n - > y - > y - > y - > y - > y - > EOF - 0 files updated, 0 files merged, 3 files removed, 0 files unresolved - adding a - adding b - adding c - diff --git a/a b/a - new file mode 100644 - examine changes to 'a'? [Ynesfdaq?] y - - @@ -0,0 +1,1 @@ - +foo - record change 1/3 to 'a'? [Ynesfdaq?] n - - diff --git a/b b/b - new file mode 100644 - examine changes to 'b'? [Ynesfdaq?] y - - @@ -0,0 +1,1 @@ - +foo - record change 2/3 to 'b'? [Ynesfdaq?] y - - diff --git a/c b/c - new file mode 100644 - examine changes to 'c'? [Ynesfdaq?] y - - @@ -0,0 +1,1 @@ - +foo - record change 3/3 to 'c'? [Ynesfdaq?] y - - created new head - Done splitting? [yN] y - - $ hg glog - @ 9:c0fbf8aaf6c4 added a b c - | () draft - o 8:f2632392aefe added a b c - | () draft - | o 7:d48a30875f01 added d - | | () draft - | x 6:f89e4764f2ed added a b c - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg rebase -r . -d 8fa14d15e168 - rebasing 9:c0fbf8aaf6c4 "added a b c" (tip) - $ hg glog - @ 10:7f87764e5b64 added a b c - | () draft - | o 8:f2632392aefe added a b c - |/ () draft - | o 7:d48a30875f01 added d - | | () draft - | x 6:f89e4764f2ed added a b c - |/ () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --dry-run < 0 - > EOF - ancestor 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: - 0: [f2632392aefe] added a b c - 1: [7f87764e5b64] added a b c - q: quit the prompt - enter the index of the revision you want to select: 0 - move:[7] added d - atop:[8] added a b c - hg rebase -r d48a30875f01 -d f2632392aefe - - $ hg evolve --dry-run < 1 - > EOF - ancestor 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: - 0: [f2632392aefe] added a b c - 1: [7f87764e5b64] added a b c - q: quit the prompt - enter the index of the revision you want to select: 1 - move:[7] added d - atop:[10] added a b c - hg rebase -r d48a30875f01 -d 7f87764e5b64 - -Testing the interactive prompt with invalid values first -(this should move its own test file when we use it at multiple places) - - $ hg evolve --all < foo - > EOF - ancestor 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: - 0: [f2632392aefe] added a b c - 1: [7f87764e5b64] added a b c - q: quit the prompt - enter the index of the revision you want to select: foo - invalid value 'foo' entered for index - could not solve instability, ambiguous destination: parent split across two branches - - $ hg evolve --all < 4 - > EOF - ancestor 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: - 0: [f2632392aefe] added a b c - 1: [7f87764e5b64] added a b c - q: quit the prompt - enter the index of the revision you want to select: 4 - invalid value '4' entered for index - could not solve instability, ambiguous destination: parent split across two branches - - $ hg evolve --all < -1 - > EOF - ancestor 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: - 0: [f2632392aefe] added a b c - 1: [7f87764e5b64] added a b c - q: quit the prompt - enter the index of the revision you want to select: -1 - invalid value '-1' entered for index - could not solve instability, ambiguous destination: parent split across two branches - - $ hg evolve --all < q - > EOF - ancestor 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: - 0: [f2632392aefe] added a b c - 1: [7f87764e5b64] added a b c - q: quit the prompt - enter the index of the revision you want to select: q - could not solve instability, ambiguous destination: parent split across two branches - -Doing the evolve with the interactive prompt - - $ hg evolve --all < 1 - > EOF - ancestor 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: - 0: [f2632392aefe] added a b c - 1: [7f87764e5b64] added a b c - q: quit the prompt - enter the index of the revision you want to select: 1 - move:[7] added d - atop:[10] added a b c - working directory is now at 1c6caa7c902a diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-serveronly-bundle2.t --- a/tests/test-evolve-serveronly-bundle2.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-evolve-serveronly-bundle2.t Wed Mar 21 16:35:18 2018 +0100 @@ -127,7 +127,7 @@ adding file changes added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) 2 new obsolescence markers - (run 'hg heads' to see heads) + (run 'hg heads' to see heads, 'hg merge' to merge) $ cat ../errors.log $ hg -R ../other pull pulling from http://localhost:$HGPORT/ diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-stop.t --- a/tests/test-evolve-stop.t Wed Mar 21 16:32:54 2018 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,382 +0,0 @@ -Tests for the --stop flag for `hg evolve` command -================================================= - -The `--stop` flag stops the interrupted evolution and delete the state file so -user can do other things and comeback and do evolution later on - -Setup -===== - - $ cat >> $HGRCPATH < [alias] - > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}" - > [extensions] - > EOF - $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH - - $ hg init stoprepo - $ cd stoprepo - $ echo ".*\.orig" > .hgignore - $ hg add .hgignore - $ hg ci -m "added hgignore" - $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done; - - $ hg glog - @ 4:c41c793e0ef1 added d - | () draft - o 3:ca1b80f7960a added c - | () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -Testing `--stop` when no evolve is interrupted -============================================== - - $ hg evolve --stop - abort: no interrupted evolve to stop - [255] - -Testing with wrong combinations of flags -======================================== - - $ hg evolve --stop --rev 1 - abort: cannot specify both "--rev" and "--stop" - [255] - - $ hg evolve --stop --continue - abort: cannot specify both "--stop" and "--continue" - [255] - - $ hg evolve --stop --all - abort: cannot specify both "--all" and "--stop" - [255] - - $ hg evolve --stop --any - abort: cannot specify both "--any" and "--stop" - [255] - -Testing when only one revision is to evolve -=========================================== - - $ hg prev - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [3] added c - $ echo bar > d - $ hg add d - $ hg amend - 1 new unstable changesets - $ hg glog - @ 6:cb6a2ab625bb added c - | () draft - | o 4:c41c793e0ef1 added d - | | () draft - | x 3:ca1b80f7960a added c - |/ () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve - move:[4] added d - atop:[6] added c - merging d - warning: conflicts while merging d! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ hg evolve --stop - stopped the interrupted evolve - working directory is now at cb6a2ab625bb - -Checking whether evolvestate file exists or not - $ cat .hg/evolvestate - cat: .hg/evolvestate: No such file or directory - [1] - -Checking where we are - $ hg id - cb6a2ab625bb tip - -Checking working dir - $ hg status -Checking for incomplete mergestate - $ ls .hg/merge - ls: cannot access .?\.hg/merge.?: No such file or directory (re) - [2] - -Checking graph - $ hg glog - @ 6:cb6a2ab625bb added c - | () draft - | o 4:c41c793e0ef1 added d - | | () draft - | x 3:ca1b80f7960a added c - |/ () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - -Testing the stop flag in case conflicts are caused by `hg next --evolve` -======================================================================== - - $ hg next --evolve - move:[4] added d - atop:[6] added c - merging d - warning: conflicts while merging d! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ hg diff - diff -r cb6a2ab625bb d - --- a/d Thu Jan 01 00:00:00 1970 +0000 - +++ b/d * (glob) - @@ -1,1 +1,5 @@ - +<<<<<<< destination: cb6a2ab625bb - test: added c - bar - +======= - +foo - +>>>>>>> evolving: c41c793e0ef1 - test: added d - - $ hg evolve --stop - stopped the interrupted evolve - working directory is now at cb6a2ab625bb - - $ hg glog - @ 6:cb6a2ab625bb added c - | () draft - | o 4:c41c793e0ef1 added d - | | () draft - | x 3:ca1b80f7960a added c - |/ () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg status - -Checking when multiple revs need to be evolved, some revs evolve without -conflicts -========================================================================= - -Making sure obsmarkers should be on evolved changeset and not rest of them once -we do `evolve --stop` --------------------------------------------------------------------------------- - - $ hg evolve - move:[4] added d - atop:[6] added c - merging d - warning: conflicts while merging d! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - $ echo foo > d - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - $ hg evolve --continue - evolving 4:c41c793e0ef1 "added d" - working directory is now at 2a4e03d422e2 - $ hg glog - @ 7:2a4e03d422e2 added d - | () draft - o 6:cb6a2ab625bb added c - | () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - o 0:8fa14d15e168 added hgignore - () draft - - $ hg up .^^^^ - 0 files updated, 0 files merged, 4 files removed, 0 files unresolved - $ echo bar > c - $ hg add c - $ hg amend - 4 new unstable changesets - - $ hg glog - @ 9:21817cd42526 added hgignore - () draft - o 7:2a4e03d422e2 added d - | () draft - o 6:cb6a2ab625bb added c - | () draft - o 2:b1661037fa25 added b - | () draft - o 1:c7586e2a9264 added a - | () draft - x 0:8fa14d15e168 added hgignore - () draft - - $ hg evolve --all - move:[1] added a - atop:[9] added hgignore - move:[2] added b - atop:[10] added a - move:[6] added c - atop:[11] added b - merging c - warning: conflicts while merging c! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ hg status - M c - A d - - $ hg evolve --stop - stopped the interrupted evolve - working directory is now at aec285328e90 - -Only changeset which has a successor now are obsoleted - $ hg glog - @ 11:aec285328e90 added b - | () draft - o 10:fd00db71edca added a - | () draft - o 9:21817cd42526 added hgignore - () draft - o 7:2a4e03d422e2 added d - | () draft - o 6:cb6a2ab625bb added c - | () draft - x 2:b1661037fa25 added b - | () draft - x 1:c7586e2a9264 added a - | () draft - x 0:8fa14d15e168 added hgignore - () draft - -Making sure doing evolve again resumes from right place and does the right thing - - $ hg evolve --all - move:[6] added c - atop:[11] added b - merging c - warning: conflicts while merging c! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ echo foobar > c - $ hg resolve -m - (no more unresolved files) - continue: hg evolve --continue - $ hg evolve --continue - evolving 6:cb6a2ab625bb "added c" - move:[7] added d - atop:[12] added c - working directory is now at cd0909a30222 - $ hg glog - @ 13:cd0909a30222 added d - | () draft - o 12:cb1dd1086ef6 added c - | () draft - o 11:aec285328e90 added b - | () draft - o 10:fd00db71edca added a - | () draft - o 9:21817cd42526 added hgignore - () draft - -Bookmarks should only be moved of the changesets which have been evolved, -bookmarks of rest of them should stay where they are are -------------------------------------------------------------------------- - - $ hg up .^ - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg bookmark b1 - $ hg up .^ - 1 files updated, 0 files merged, 1 files removed, 0 files unresolved - (leaving bookmark b1) - $ hg bookmark b2 - - $ hg glog - o 13:cd0909a30222 added d - | () draft - o 12:cb1dd1086ef6 added c - | (b1) draft - @ 11:aec285328e90 added b - | (b2) draft - o 10:fd00db71edca added a - | () draft - o 9:21817cd42526 added hgignore - () draft - - $ hg prev - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [10] added a - $ echo tom > c - $ hg amend - 3 new unstable changesets - - $ hg glog - @ 15:a3cc2042492f added a - | () draft - | o 13:cd0909a30222 added d - | | () draft - | o 12:cb1dd1086ef6 added c - | | (b1) draft - | o 11:aec285328e90 added b - | | (b2) draft - | x 10:fd00db71edca added a - |/ () draft - o 9:21817cd42526 added hgignore - () draft - - $ hg evolve --all - move:[11] added b - atop:[15] added a - move:[12] added c - atop:[16] added b - merging c - warning: conflicts while merging c! (edit, then use 'hg resolve --mark') - evolve failed! - fix conflict and run 'hg evolve --continue' or use 'hg update -C .' to abort - abort: unresolved merge conflicts (see hg help resolve) - [255] - - $ hg evolve --stop - stopped the interrupted evolve - working directory is now at a3f4b95da934 - -Bookmarks of only the changeset which are evolved is moved - $ hg glog - @ 16:a3f4b95da934 added b - | (b2) draft - o 15:a3cc2042492f added a - | () draft - | o 13:cd0909a30222 added d - | | () draft - | o 12:cb1dd1086ef6 added c - | | (b1) draft - | x 11:aec285328e90 added b - | | () draft - | x 10:fd00db71edca added a - |/ () draft - o 9:21817cd42526 added hgignore - () draft diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-templates.t --- a/tests/test-evolve-templates.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-evolve-templates.t Wed Mar 21 16:35:18 2018 +0100 @@ -16,10 +16,7 @@ > {if(precursors, "\n Precursors: {precursors}")}\ > {if(precursors, "\n semi-colon: {join(precursors, "; ")}")}\ > {if(successors, "\n Successors: {successors}")}\ - > {if(successors, "\n semi-colon: {join(successors, "; ")}")}\ - > {if(obsfate, "\n Fate: {join(obsfate, "\n Fate: ")}\n")}\n' - > fatelog = log -G -T '{node|short}\n{if(obsfate, " Obsfate: {join(obsfate, "; ")}\n\n")}' - > fatelogjson = log -G -T '{node|short} {obsfate|json}\n' + > {if(successors, "\n semi-colon: {join(successors, "; ")}")}\n' > EOF Test templates on amended commit @@ -88,74 +85,8 @@ | @ 471f378eab4c |/ Successors: [d004c8f274b9] | semi-colon: [d004c8f274b9] - | Fate: rewritten as d004c8f274b9 by test, test2 - | - o ea207398892e - - - $ hg log -G - o changeset: 4:d004c8f274b9 - | tag: tip - | parent: 0:ea207398892e - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: A2 - | - | @ changeset: 1:471f378eab4c - |/ user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: A0 - | - o changeset: 0:ea207398892e - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: ROOT - - - $ hg fatelog -q - o d004c8f274b9 - | - | @ 471f378eab4c - |/ Obsfate: rewritten as d004c8f274b9 - | o ea207398892e - - $ hg fatelog - o d004c8f274b9 - | - | @ 471f378eab4c - |/ Obsfate: rewritten as d004c8f274b9 by test, test2 - | - o ea207398892e - - $ hg fatelog -v - o d004c8f274b9 - | - | @ 471f378eab4c - |/ Obsfate: rewritten as d004c8f274b9 by test, test2 (*) (glob) - | - o ea207398892e - - -(check json) - - $ hg log -GT '{precursors|json}\n' - o ["471f378eab4c5e25f6c77f785b27c936efb22874"] - | - | @ [] - |/ - o [] - - - $ hg log -GT '{successors|json}\n' - o "" - | - | @ [["d004c8f274b9ec480a47a93c10dac5eee63adb78"]] - |/ - o "" - - $ hg up 'desc(A1)' --hidden 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (a468dc9b3633) @@ -169,8 +100,6 @@ | @ a468dc9b3633 |/ Successors: [d004c8f274b9] | semi-colon: [d004c8f274b9] - | Fate: reworded as d004c8f274b9 by test2 - | o ea207398892e Precursors template should show the precursor as we force its display with @@ -184,24 +113,11 @@ | semi-colon: 471f378eab4c | Successors: [d004c8f274b9] | semi-colon: [d004c8f274b9] - | Fate: reworded as d004c8f274b9 by test2 - | | x f137d23bb3e1 - | | Fate: pruned | | | x 471f378eab4c |/ Successors: [a468dc9b3633] | semi-colon: [a468dc9b3633] - | Fate: rewritten as a468dc9b3633 - | - o ea207398892e - - $ hg fatelog -v - o d004c8f274b9 - | - | @ a468dc9b3633 - |/ Obsfate: reworded as d004c8f274b9 by test2 (*) (glob) - | o ea207398892e $ hg up 'desc(A2)' @@ -220,50 +136,13 @@ | semi-colon: 471f378eab4c | Successors: [d004c8f274b9] | semi-colon: [d004c8f274b9] - | Fate: reworded as d004c8f274b9 by test2 - | | x f137d23bb3e1 - | | Fate: pruned | | | x 471f378eab4c |/ Successors: [a468dc9b3633] | semi-colon: [a468dc9b3633] - | Fate: rewritten as a468dc9b3633 - | o ea207398892e - $ hg fatelog -v - @ d004c8f274b9 - | - o ea207398892e - - - $ hg fatelog -v --hidden - @ d004c8f274b9 - | - | x a468dc9b3633 - |/ Obsfate: reworded as d004c8f274b9 by test2 (*) (glob) - | - | x f137d23bb3e1 - | | Obsfate: pruned by test (at *) (glob) - | | - | x 471f378eab4c - |/ Obsfate: rewritten as a468dc9b3633 by test (*) (glob) - | - o ea207398892e - - - $ hg fatelogjson --hidden - @ d004c8f274b9 [] - | - | x a468dc9b3633 [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["ef1", "1"], ["user", "test2"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], "users": ["test2"], "verb": "reworded"}] (glob) - |/ - | x f137d23bb3e1 [{"markers": [["f137d23bb3e11dc1daeb6264fac9cb2433782e15", [], 0, [["ef1", "0"], ["user", "test"]], [*, 0], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]], "max_date": [*, 0], "min_date": [*, 0], "successors": [], "users": ["test"], "verb": "pruned"}] (glob) - | | - | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["ef1", "9"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], "users": ["test"], "verb": "rewritten"}] (glob) - |/ - o ea207398892e [] - Test templates with splitted commit =================================== @@ -366,18 +245,6 @@ | @ 471597cad322 |/ Successors: [337fec4d2edc, f257fde29c7a] | semi-colon: [337fec4d2edc, f257fde29c7a] - | Fate: split as 337fec4d2edc, f257fde29c7a - | - o ea207398892e - - $ hg fatelog - o f257fde29c7a - | - o 337fec4d2edc - | - | @ 471597cad322 - |/ Obsfate: split as 337fec4d2edc, f257fde29c7a - | o ea207398892e @@ -405,31 +272,8 @@ | x 471597cad322 |/ Successors: [337fec4d2edc, f257fde29c7a] | semi-colon: [337fec4d2edc, f257fde29c7a] - | Fate: split as 337fec4d2edc, f257fde29c7a - | o ea207398892e - $ hg fatelog --hidden - @ f257fde29c7a - | - o 337fec4d2edc - | - | x 471597cad322 - |/ Obsfate: split as 337fec4d2edc, f257fde29c7a - | - o ea207398892e - - - $ hg fatelogjson --hidden - @ f257fde29c7a [] - | - o 337fec4d2edc [] - | - | x 471597cad322 [{"markers": [["471597cad322d1f659bb169751be9133dad92ef3", ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], 0, [["ef1", "12"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["337fec4d2edcf0e7a467e35f818234bc620068b5", "f257fde29c7a847c9b607f6e958656d0df0fb15c"], "users": ["test"], "verb": "split"}] (glob) - |/ - o ea207398892e [] - - Test templates with folded commit ============================== @@ -500,16 +344,6 @@ | @ 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten as eb5a0daa2192 - | - o ea207398892e - - $ hg fatelog - o eb5a0daa2192 - | - | @ 471f378eab4c - |/ Obsfate: rewritten as eb5a0daa2192 - | o ea207398892e $ hg up 'desc(B0)' --hidden @@ -526,27 +360,11 @@ | @ 0dec01379d3b | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten as eb5a0daa2192 - | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten as eb5a0daa2192 - | o ea207398892e - $ hg fatelog - o eb5a0daa2192 - | - | @ 0dec01379d3b - | | Obsfate: rewritten as eb5a0daa2192 - | | - | x 471f378eab4c - |/ Obsfate: rewritten as eb5a0daa2192 - | - o ea207398892e - - $ hg up 'desc(C0)' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -566,36 +384,11 @@ | x 0dec01379d3b | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten as eb5a0daa2192 - | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten as eb5a0daa2192 - | o ea207398892e - $ hg fatelog --hidden - @ eb5a0daa2192 - | - | x 0dec01379d3b - | | Obsfate: rewritten as eb5a0daa2192 - | | - | x 471f378eab4c - |/ Obsfate: rewritten as eb5a0daa2192 - | - o ea207398892e - - - $ hg fatelogjson --hidden - @ eb5a0daa2192 [] - | - | x 0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] (glob) - | | - | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] (glob) - |/ - o ea207398892e [] - Test templates with divergence ============================== @@ -679,22 +472,8 @@ | @ 471f378eab4c |/ Successors: [fdf9bde5129a], [019fadeab383] | semi-colon: [fdf9bde5129a]; [019fadeab383] - | Fate: reworded as fdf9bde5129a - | Fate: reworded as 019fadeab383 - | o ea207398892e - $ hg fatelog - o 019fadeab383 - | - | o fdf9bde5129a - |/ - | @ 471f378eab4c - |/ Obsfate: reworded as fdf9bde5129a; reworded as 019fadeab383 - | - o ea207398892e - - $ hg up 'desc(A1)' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved Precursors template should not show precursors as it's not displayed in the @@ -707,13 +486,6 @@ o ea207398892e - $ hg fatelog - o 019fadeab383 - | - | @ fdf9bde5129a - |/ - o ea207398892e - Precursors template should a precursor as we force its display with --hidden $ hg tlog --hidden o 019fadeab383 @@ -724,44 +496,14 @@ | semi-colon: 471f378eab4c | Successors: [019fadeab383] | semi-colon: [019fadeab383] - | Fate: reworded as 019fadeab383 - | | @ fdf9bde5129a |/ Precursors: 471f378eab4c | semi-colon: 471f378eab4c | x 471f378eab4c |/ Successors: [fdf9bde5129a], [65b757b745b9] | semi-colon: [fdf9bde5129a]; [65b757b745b9] - | Fate: reworded as fdf9bde5129a - | Fate: reworded as 65b757b745b9 - | o ea207398892e - $ hg fatelog --hidden - o 019fadeab383 - | - | x 65b757b745b9 - |/ Obsfate: reworded as 019fadeab383 - | - | @ fdf9bde5129a - |/ - | x 471f378eab4c - |/ Obsfate: reworded as fdf9bde5129a; reworded as 65b757b745b9 - | - o ea207398892e - - - $ hg fatelogjson --hidden - o 019fadeab383 [] - | - | x 65b757b745b9 [{"markers": [["65b757b745b935093c87a2bccd877521cccffcbd", ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["019fadeab383f6699fa83ad7bdb4d82ed2c0e5ab"], "users": ["test"], "verb": "reworded"}] (glob) - |/ - | @ fdf9bde5129a [] - |/ - | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], "users": ["test"], "verb": "reworded"}, {"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["65b757b745b935093c87a2bccd877521cccffcbd"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["65b757b745b935093c87a2bccd877521cccffcbd"], "users": ["test"], "verb": "reworded"}] (glob) - |/ - o ea207398892e [] - Test templates with amended + folded commit =========================================== @@ -844,16 +586,6 @@ | @ 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten as eb5a0daa2192 - | - o ea207398892e - - $ hg fatelog - o eb5a0daa2192 - | - | @ 471f378eab4c - |/ Obsfate: rewritten as eb5a0daa2192 - | o ea207398892e $ hg up 'desc(B0)' --hidden @@ -867,24 +599,9 @@ | @ 0dec01379d3b | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten as eb5a0daa2192 - | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten as eb5a0daa2192 - | - o ea207398892e - - $ hg fatelog - o eb5a0daa2192 - | - | @ 0dec01379d3b - | | Obsfate: rewritten as eb5a0daa2192 - | | - | x 471f378eab4c - |/ Obsfate: rewritten as eb5a0daa2192 - | o ea207398892e @@ -899,24 +616,9 @@ | @ b7ea6d14e664 | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten as eb5a0daa2192 - | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten as eb5a0daa2192 - | - o ea207398892e - - $ hg fatelog - o eb5a0daa2192 - | - | @ b7ea6d14e664 - | | Obsfate: rewritten as eb5a0daa2192 - | | - | x 471f378eab4c - |/ Obsfate: rewritten as eb5a0daa2192 - | o ea207398892e @@ -936,46 +638,14 @@ | | semi-colon: 0dec01379d3b | | Successors: [eb5a0daa2192] | | semi-colon: [eb5a0daa2192] - | | Fate: rewritten as eb5a0daa2192 - | | | | x 0dec01379d3b | |/ Successors: [b7ea6d14e664] | | semi-colon: [b7ea6d14e664] - | | Fate: reworded as b7ea6d14e664 - | | | x 471f378eab4c |/ Successors: [eb5a0daa2192] | semi-colon: [eb5a0daa2192] - | Fate: rewritten as eb5a0daa2192 - | o ea207398892e - $ hg fatelog --hidden - @ eb5a0daa2192 - | - | x b7ea6d14e664 - | | Obsfate: rewritten as eb5a0daa2192 - | | - | | x 0dec01379d3b - | |/ Obsfate: reworded as b7ea6d14e664 - | | - | x 471f378eab4c - |/ Obsfate: rewritten as eb5a0daa2192 - | - o ea207398892e - - $ hg fatelogjson --hidden - @ eb5a0daa2192 [] - | - | x b7ea6d14e664 [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] (glob) - | | - | | x 0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], "users": ["test"], "verb": "reworded"}] (glob) - | |/ - | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}] (glob) - |/ - o ea207398892e [] - - Test template with pushed and pulled obs markers ============================================== @@ -1069,497 +739,6 @@ | @ 471f378eab4c |/ Successors: [7a230b46bf61] | semi-colon: [7a230b46bf61] - | Fate: reworded as 7a230b46bf61 - | - o ea207398892e - - $ hg fatelog --hidden -v - o 7a230b46bf61 - | - | @ 471f378eab4c - |/ Obsfate: reworded as 7a230b46bf61 by test (*) (glob) - | - o ea207398892e - - $ hg up 'desc(A2)' - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg tlog - @ 7a230b46bf61 - | - o ea207398892e - - $ hg fatelog -v - @ 7a230b46bf61 - | - o ea207398892e - - $ hg tlog --hidden - @ 7a230b46bf61 - | Precursors: 471f378eab4c - | semi-colon: 471f378eab4c - | x 471f378eab4c - |/ Successors: [7a230b46bf61] - | semi-colon: [7a230b46bf61] - | Fate: reworded as 7a230b46bf61 - | - o ea207398892e - - $ hg fatelog --hidden -v - @ 7a230b46bf61 - | - | x 471f378eab4c - |/ Obsfate: reworded as 7a230b46bf61 by test (*) (glob) - | - o ea207398892e - - - $ hg fatelogjson --hidden - @ 7a230b46bf61 [] - | - | x 471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null], ["fdf9bde5129a28d4548fadd3f62b265cdd3b7a2e", ["7a230b46bf61e50b30308c6cfd7bd1269ef54702"], 0, [["ef1", "1"], ["user", "test"]], [*, *], null]], "max_date": [*, *], "min_date": [*, *], "successors": ["7a230b46bf61e50b30308c6cfd7bd1269ef54702"], "users": ["test"], "verb": "reworded"}] (glob) - |/ - o ea207398892e [] - - -Test template with obsmarkers cycle -=================================== - -Test setup ----------- - - $ hg init $TESTTMP/templates-local-cycle - $ cd $TESTTMP/templates-local-cycle - $ mkcommit ROOT - $ mkcommit A0 - $ mkcommit B0 - $ hg up -r 0 - 0 files updated, 0 files merged, 2 files removed, 0 files unresolved - $ mkcommit C0 - created new head - -Create the cycle - - $ hg debugobsolete `getid "desc(A0)"` `getid "desc(B0)"` - $ hg debugobsolete `getid "desc(B0)"` `getid "desc(C0)"` - $ hg debugobsolete `getid "desc(B0)"` `getid "desc(A0)"` - -Check templates ---------------- - - $ hg tlog - @ f897c6137566 - | - o ea207398892e - - $ hg fatelog - @ f897c6137566 - | - o ea207398892e - - $ hg up -r "desc(B0)" --hidden - 2 files updated, 0 files merged, 1 files removed, 0 files unresolved - working directory parent is obsolete! (0dec01379d3b) - (use 'hg evolve' to update to its parent successor) - $ hg tlog - o f897c6137566 - | Precursors: 0dec01379d3b - | semi-colon: 0dec01379d3b - | @ 0dec01379d3b - | | Precursors: 471f378eab4c - | | semi-colon: 471f378eab4c - | | Successors: [f897c6137566], [471f378eab4c] - | | semi-colon: [f897c6137566]; [471f378eab4c] - | | Fate: rewritten as f897c6137566 - | | Fate: rewritten as 471f378eab4c - | | - | x 471f378eab4c - |/ Precursors: 0dec01379d3b - | semi-colon: 0dec01379d3b - | Successors: [0dec01379d3b] - | semi-colon: [0dec01379d3b] - | Fate: rewritten as 0dec01379d3b - | - o ea207398892e - - $ hg fatelog - o f897c6137566 - | - | @ 0dec01379d3b - | | Obsfate: rewritten as f897c6137566; rewritten as 471f378eab4c - | | - | x 471f378eab4c - |/ Obsfate: rewritten as 0dec01379d3b - | - o ea207398892e - - $ hg up -r "desc(A0)" --hidden - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - working directory parent is obsolete! (471f378eab4c) - (use 'hg evolve' to update to its parent successor) - $ hg tlog - o f897c6137566 - | Precursors: 471f378eab4c - | semi-colon: 471f378eab4c - | @ 471f378eab4c - |/ Fate: pruned - | - o ea207398892e - - $ hg fatelog - o f897c6137566 - | - | @ 471f378eab4c - |/ Obsfate: pruned - | - o ea207398892e - - - $ hg up -r "desc(ROOT)" --hidden - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ hg tlog - o f897c6137566 - | - @ ea207398892e - - $ hg fatelog - o f897c6137566 - | - @ ea207398892e - - $ hg tlog --hidden - o f897c6137566 - | Precursors: 0dec01379d3b - | semi-colon: 0dec01379d3b - | x 0dec01379d3b - | | Precursors: 471f378eab4c - | | semi-colon: 471f378eab4c - | | Successors: [f897c6137566], [471f378eab4c] - | | semi-colon: [f897c6137566]; [471f378eab4c] - | | Fate: rewritten as f897c6137566 - | | Fate: rewritten as 471f378eab4c - | | - | x 471f378eab4c - |/ Precursors: 0dec01379d3b - | semi-colon: 0dec01379d3b - | Successors: [0dec01379d3b] - | semi-colon: [0dec01379d3b] - | Fate: rewritten as 0dec01379d3b - | - @ ea207398892e - -Test template with split + divergence with cycles -================================================= - - $ hg log -G - o changeset: 3:f897c6137566 - | tag: tip - | parent: 0:ea207398892e - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: C0 - | - @ changeset: 0:ea207398892e - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: ROOT - - $ hg up - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - -Create a commit with three files - $ touch A B C - $ hg commit -A -m "Add A,B,C" A B C - -Split it - $ hg up 3 - 0 files updated, 0 files merged, 3 files removed, 0 files unresolved - $ touch A - $ hg commit -A -m "Add A,B,C" A - created new head - - $ touch B - $ hg commit -A -m "Add A,B,C" B - - $ touch C - $ hg commit -A -m "Add A,B,C" C - - $ hg log -G - @ changeset: 7:ba2ed02b0c9a - | tag: tip - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: Add A,B,C - | - o changeset: 6:4a004186e638 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: Add A,B,C - | - o changeset: 5:dd800401bd8c - | parent: 3:f897c6137566 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: Add A,B,C - | - | o changeset: 4:9bd10a0775e4 - |/ user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: Add A,B,C - | - o changeset: 3:f897c6137566 - | parent: 0:ea207398892e - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: C0 - | - o changeset: 0:ea207398892e - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: ROOT - - $ hg debugobsolete `getid "4"` `getid "5"` `getid "6"` `getid "7"` - $ hg log -G - @ changeset: 7:ba2ed02b0c9a - | tag: tip - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: Add A,B,C - | - o changeset: 6:4a004186e638 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: Add A,B,C - | - o changeset: 5:dd800401bd8c - | parent: 3:f897c6137566 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: Add A,B,C - | - o changeset: 3:f897c6137566 - | parent: 0:ea207398892e - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: C0 - | - o changeset: 0:ea207398892e - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: ROOT - -Diverge one of the splitted commit - - $ hg up 6 - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ hg commit --amend -m "Add only B" - 1 new unstable changesets - - $ hg up 6 --hidden - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - working directory parent is obsolete! (4a004186e638) - (use 'hg evolve' to update to its successor: b18bc8331526) - $ hg commit --amend -m "Add B only" - 4 new divergent changesets - - $ hg log -G - @ changeset: 9:0b997eb7ceee - | tag: tip - | parent: 5:dd800401bd8c - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent - | summary: Add B only - | - | o changeset: 8:b18bc8331526 - |/ parent: 5:dd800401bd8c - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent - | summary: Add only B - | - | o changeset: 7:ba2ed02b0c9a - | | user: test - | | date: Thu Jan 01 00:00:00 1970 +0000 - | | trouble: unstable, divergent - | | summary: Add A,B,C - | | - | x changeset: 6:4a004186e638 - |/ user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: Add A,B,C - | - o changeset: 5:dd800401bd8c - | parent: 3:f897c6137566 - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | trouble: divergent - | summary: Add A,B,C - | - o changeset: 3:f897c6137566 - | parent: 0:ea207398892e - | user: test - | date: Thu Jan 01 00:00:00 1970 +0000 - | summary: C0 - | - o changeset: 0:ea207398892e - user: test - date: Thu Jan 01 00:00:00 1970 +0000 - summary: ROOT - -Check templates ---------------- - - $ hg tlog - @ 0b997eb7ceee - | Precursors: 4a004186e638 - | semi-colon: 4a004186e638 - | o b18bc8331526 - |/ Precursors: 4a004186e638 - | semi-colon: 4a004186e638 - | o ba2ed02b0c9a - | | - | x 4a004186e638 - |/ Successors: [b18bc8331526], [0b997eb7ceee] - | semi-colon: [b18bc8331526]; [0b997eb7ceee] - | Fate: reworded as b18bc8331526 - | Fate: reworded as 0b997eb7ceee - | - o dd800401bd8c - | - o f897c6137566 - | - o ea207398892e - - $ hg fatelog - @ 0b997eb7ceee - | - | o b18bc8331526 - |/ - | o ba2ed02b0c9a - | | - | x 4a004186e638 - |/ Obsfate: reworded as b18bc8331526; reworded as 0b997eb7ceee - | - o dd800401bd8c - | - o f897c6137566 - | - o ea207398892e - - $ hg tlog --hidden - @ 0b997eb7ceee - | Precursors: 4a004186e638 - | semi-colon: 4a004186e638 - | o b18bc8331526 - |/ Precursors: 4a004186e638 - | semi-colon: 4a004186e638 - | o ba2ed02b0c9a - | | Precursors: 9bd10a0775e4 - | | semi-colon: 9bd10a0775e4 - | x 4a004186e638 - |/ Precursors: 9bd10a0775e4 - | semi-colon: 9bd10a0775e4 - | Successors: [b18bc8331526], [0b997eb7ceee] - | semi-colon: [b18bc8331526]; [0b997eb7ceee] - | Fate: reworded as b18bc8331526 - | Fate: reworded as 0b997eb7ceee - | - o dd800401bd8c - | Precursors: 9bd10a0775e4 - | semi-colon: 9bd10a0775e4 - | x 9bd10a0775e4 - |/ Successors: [dd800401bd8c, 4a004186e638, ba2ed02b0c9a] - | semi-colon: [dd800401bd8c, 4a004186e638, ba2ed02b0c9a] - | Fate: split as 4a004186e638, ba2ed02b0c9a, dd800401bd8c - | - o f897c6137566 - | Precursors: 0dec01379d3b - | semi-colon: 0dec01379d3b - | x 0dec01379d3b - | | Precursors: 471f378eab4c - | | semi-colon: 471f378eab4c - | | Successors: [f897c6137566], [471f378eab4c] - | | semi-colon: [f897c6137566]; [471f378eab4c] - | | Fate: rewritten as f897c6137566 - | | Fate: rewritten as 471f378eab4c - | | - | x 471f378eab4c - |/ Precursors: 0dec01379d3b - | semi-colon: 0dec01379d3b - | Successors: [0dec01379d3b] - | semi-colon: [0dec01379d3b] - | Fate: rewritten as 0dec01379d3b - | - o ea207398892e - - $ hg fatelog --hidden - @ 0b997eb7ceee - | - | o b18bc8331526 - |/ - | o ba2ed02b0c9a - | | - | x 4a004186e638 - |/ Obsfate: reworded as b18bc8331526; reworded as 0b997eb7ceee - | - o dd800401bd8c - | - | x 9bd10a0775e4 - |/ Obsfate: split as 4a004186e638, ba2ed02b0c9a, dd800401bd8c - | - o f897c6137566 - | - | x 0dec01379d3b - | | Obsfate: rewritten as f897c6137566; rewritten as 471f378eab4c - | | - | x 471f378eab4c - |/ Obsfate: rewritten as 0dec01379d3b - | - o ea207398892e - - $ hg up --hidden 4 - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - working directory parent is obsolete! (9bd10a0775e4) - (9bd10a0775e4 has diverged, use 'hg evolve --list --content-divergent' to resolve the issue) - $ hg rebase -r 7 -d 8 --config extensions.rebase= - rebasing 7:ba2ed02b0c9a "Add A,B,C" - $ hg tlog - o eceed8f98ffc - | Precursors: 9bd10a0775e4 - | semi-colon: 9bd10a0775e4 - | o 0b997eb7ceee - | | Precursors: 9bd10a0775e4 - | | semi-colon: 9bd10a0775e4 - o | b18bc8331526 - |/ Precursors: 9bd10a0775e4 - | semi-colon: 9bd10a0775e4 - o dd800401bd8c - | Precursors: 9bd10a0775e4 - | semi-colon: 9bd10a0775e4 - | @ 9bd10a0775e4 - |/ Successors: [dd800401bd8c, 0b997eb7ceee, eceed8f98ffc], [dd800401bd8c, b18bc8331526, eceed8f98ffc] - | semi-colon: [dd800401bd8c, 0b997eb7ceee, eceed8f98ffc]; [dd800401bd8c, b18bc8331526, eceed8f98ffc] - | Fate: split as 0b997eb7ceee, dd800401bd8c, eceed8f98ffc - | Fate: split as b18bc8331526, dd800401bd8c, eceed8f98ffc - | - o f897c6137566 - | - o ea207398892e - - $ hg fatelog - o eceed8f98ffc - | - | o 0b997eb7ceee - | | - o | b18bc8331526 - |/ - o dd800401bd8c - | - | @ 9bd10a0775e4 - |/ Obsfate: split as 0b997eb7ceee, dd800401bd8c, eceed8f98ffc; split as b18bc8331526, dd800401bd8c, eceed8f98ffc - | - o f897c6137566 - | o ea207398892e Test templates with pruned commits @@ -1586,13 +765,6 @@ (use 'hg evolve' to update to its parent successor) $ hg tlog @ 471f378eab4c - | Fate: pruned | o ea207398892e - $ hg fatelog -v - @ 471f378eab4c - | Obsfate: pruned by test (at *) (glob) - | - o ea207398892e - diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve-topic.t --- a/tests/test-evolve-topic.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-evolve-topic.t Wed Mar 21 16:35:18 2018 +0100 @@ -267,113 +267,3 @@ $ hg prev 0 files updated, 0 files merged, 1 files removed, 0 files unresolved [20] add fff - -Testing issue 5708 when we are on obsolete changeset and there is active topic ------------------------------------------------------------------------------- - - $ hg log --graph - @ 20 - {bar} 793eb6370b2d add fff (draft) - | - | o 19 - {bar} 9bf430c106b7 add jjj (draft) - | | - | o 18 - {bar} d2dc89c57700 add iii (draft) - | | - | o 17 - {bar} 20bc4d02aa62 add hhh (draft) - | | - | o 16 - {bar} 16d6f664b17c add ggg (draft) - | | - | x 15 - {foo} 070c5573d8f9 add fff (draft) - |/ - o 14 - {foo} 42b49017ff90 add eee (draft) - | - o 11 - {foo} d9cacd156ffc add ddd (draft) - | - o 2 - {foo} cced9bac76e3 add ccc (draft) - | - o 1 - {} a4dbed0837ea add bbb (draft) - | - o 0 - {} 199cc73e9a0b add aaa (draft) - - - $ hg topic - * bar (5 changesets, 4 troubled) - foo (3 changesets) - -When the current topic, obsoleted changesets topic and successor topic are same - - $ hg up 20bc4d02aa62 - 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ echo foobar >> hhh - $ hg amend - $ hg up 20bc4d02aa62 - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - working directory parent is obsolete! (20bc4d02aa62) - (use 'hg evolve' to update to its successor: d834582d9ee3) - $ hg log -Gr 14:: - o 22 - {bar} d834582d9ee3 add hhh (draft) - | - | o 20 - {bar} 793eb6370b2d add fff (draft) - | | - | | o 19 - {bar} 9bf430c106b7 add jjj (draft) - | | | - | | o 18 - {bar} d2dc89c57700 add iii (draft) - | | | - +---@ 17 - {bar} 20bc4d02aa62 add hhh (draft) - | | - o | 16 - {bar} 16d6f664b17c add ggg (draft) - | | - x | 15 - {foo} 070c5573d8f9 add fff (draft) - |/ - o 14 - {foo} 42b49017ff90 add eee (draft) - | - ~ - - $ hg prev - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [16] add ggg - -When the current topic and successors topic are same, but obsolete cset has -different topic - - $ hg rebase -s d2dc89c57700 -d d834582d9ee3 --config extensions.rebase= - rebasing 18:d2dc89c57700 "add iii" - rebasing 19:9bf430c106b7 "add jjj" - $ hg log -Gr 42b49017ff90:: - o 24 - {bar} 7542e76aba2c add jjj (draft) - | - o 23 - {bar} 7858bd7e9906 add iii (draft) - | - o 22 - {bar} d834582d9ee3 add hhh (draft) - | - | o 20 - {bar} 793eb6370b2d add fff (draft) - | | - @ | 16 - {bar} 16d6f664b17c add ggg (draft) - | | - x | 15 - {foo} 070c5573d8f9 add fff (draft) - |/ - o 14 - {foo} 42b49017ff90 add eee (draft) - | - ~ - - $ hg up 070c5573d8f9 - switching to topic foo - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - working directory parent is obsolete! (070c5573d8f9) - (use 'hg evolve' to update to its successor: 793eb6370b2d) - - $ hg topic bar - - $ hg prev - no parent in topic "bar" - (do you want --no-topic) - [1] - -When current topic and obsolete cset topic are same but successor has different -one - - $ hg up 070c5573d8f9 - switching to topic foo - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg prev - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - [14] add eee diff -r 7a5c3175015e -r b92114f201c9 tests/test-evolve.t --- a/tests/test-evolve.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-evolve.t Wed Mar 21 16:35:18 2018 +0100 @@ -92,8 +92,9 @@ Orphans are changesets left behind when their ancestors are rewritten, (currently: 'unstable'). Divergence has two variants: - * Content-divergence occurs when independent rewrites of the same - changesets lead to different results. (currently: 'divergent') + * Content-divergence occurs when independent rewrites of the same changesets + lead to different results. (currently: 'divergent') + * Phase-divergence occurs when the old (obsolete) version of a changeset becomes public. (currently: 'bumped') diff -r 7a5c3175015e -r b92114f201c9 tests/test-exchange-obsmarkers-case-B5.t --- a/tests/test-exchange-obsmarkers-case-B5.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-exchange-obsmarkers-case-B5.t Wed Mar 21 16:35:18 2018 +0100 @@ -158,7 +158,7 @@ (run 'hg update' to get a working copy) ## post pull state # obstore: main - 069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'user': 'test'} + 069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (*) {'ef1': '*', 'user': 'test'} (glob) 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob) 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (*) {'user': 'test'} (glob) diff -r 7a5c3175015e -r b92114f201c9 tests/test-fold.t --- a/tests/test-fold.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-fold.t Wed Mar 21 16:35:18 2018 +0100 @@ -113,7 +113,7 @@ $ hg fold --from 6 # want to run hg fold 6 abort: hidden revision '6'! - (use --hidden to access hidden revisions; successor: 198b5c405d01) + (use --hidden to access hidden revisions) [255] $ hg log -G diff -r 7a5c3175015e -r b92114f201c9 tests/test-grab.t --- a/tests/test-grab.t Wed Mar 21 16:32:54 2018 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,331 +0,0 @@ -Test for the grab command - - $ cat >> $HGRCPATH < [alias] - > glog = log -G -T "{rev}:{node|short} {desc}\n" - > [extensions] - > EOF - $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH - - $ mkcommit() { - > echo "$1" > "$1" - > hg add "$1" - > hg ci -m "add $1" - > } - - $ hg init repo - $ cd repo - $ hg help grab - hg grab [-r] rev - - grabs a commit, move it on the top of working directory parent and - updates to it. - - options: - - -r --rev VALUE revision to grab - -c --continue continue interrupted grab - -a --abort abort interrupted grab - - (some details hidden, use --verbose to show complete help) - - $ mkcommit a - $ mkcommit b - $ mkcommit c - - $ hg glog - @ 2:4538525df7e2 add c - | - o 1:7c3bad9141dc add b - | - o 0:1f0dee641bb7 add a - - -Grabbing an ancestor - - $ hg grab -r 7c3bad9141dc - abort: cannot grab an ancestor revision - [255] - -Grabbing the working directory parent - - $ hg grab -r . - abort: cannot grab an ancestor revision - [255] - -Specifying multiple revisions to grab - - $ hg grab 1f0dee641bb7 -r 7c3bad9141dc - abort: specify just one revision - [255] - -Specifying no revisions to grab - - $ hg grab - abort: empty revision set - [255] - -Continuing without interrupted grab - - $ hg grab --continue - abort: no interrupted grab state exists - [255] - -Aborting without interrupted grab - - $ hg grab --abort - abort: no interrupted grab state exists - [255] - -Specifying both continue and revs - - $ hg up 1f0dee641bb7 - 0 files updated, 0 files merged, 2 files removed, 0 files unresolved - $ hg grab -r 4538525df7e2 --continue - abort: cannot specify both --continue and revision - [255] - -Making new branch heads - - $ mkcommit x - created new head - $ mkcommit y - - $ hg glog - @ 4:d46dc301d92f add y - | - o 3:8e224524cd09 add x - | - | o 2:4538525df7e2 add c - | | - | o 1:7c3bad9141dc add b - |/ - o 0:1f0dee641bb7 add a - -Grabbing a revision - - $ hg grab 7c3bad9141dc - grabbing 1:7c3bad9141dc "add b" - $ hg glog - @ 5:7c15c05db6fa add b - | - o 4:d46dc301d92f add y - | - o 3:8e224524cd09 add x - | - | o 2:4538525df7e2 add c - | | - | x 1:7c3bad9141dc add b - |/ - o 0:1f0dee641bb7 add a - - -When grab does not create any changes - - $ hg graft -r 4538525df7e2 - grafting 2:4538525df7e2 "add c" - - $ hg glog - @ 6:c4636a81ebeb add c - | - o 5:7c15c05db6fa add b - | - o 4:d46dc301d92f add y - | - o 3:8e224524cd09 add x - | - | o 2:4538525df7e2 add c - | | - | x 1:7c3bad9141dc add b - |/ - o 0:1f0dee641bb7 add a - - $ hg grab -r 4538525df7e2 - grabbing 2:4538525df7e2 "add c" - note: grab of 2:4538525df7e2 created no changes to commit - - $ hg glog - @ 6:c4636a81ebeb add c - | - o 5:7c15c05db6fa add b - | - o 4:d46dc301d92f add y - | - o 3:8e224524cd09 add x - | - o 0:1f0dee641bb7 add a - -interrupted grab - - $ hg up d46dc301d92f - 0 files updated, 0 files merged, 2 files removed, 0 files unresolved - $ echo foo > c - $ hg ci -Aqm "foo to c" - $ hg grab -r c4636a81ebeb - grabbing 6:c4636a81ebeb "add c" - merging c - warning: conflicts while merging c! (edit, then use 'hg resolve --mark') - unresolved merge conflicts (see hg help resolve) - [1] - - $ echo foobar > c - $ hg resolve --all --mark - (no more unresolved files) - continue: hg grab --continue - $ hg grab --continue - $ hg glog - @ 8:44e155eb95c7 add c - | - o 7:2ccc03d1d096 foo to c - | - | o 5:7c15c05db6fa add b - |/ - o 4:d46dc301d92f add y - | - o 3:8e224524cd09 add x - | - o 0:1f0dee641bb7 add a - - -When interrupted grab results in no changes to commit - - $ hg up d46dc301d92f - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ echo bar > c - $ hg add c - $ hg ci -m "foo to c" - created new head - - $ hg up 44e155eb95c7 - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - - $ hg grab 4e04628911f6 - grabbing 9:4e04628911f6 "foo to c" - merging c - warning: conflicts while merging c! (edit, then use 'hg resolve --mark') - unresolved merge conflicts (see hg help resolve) - [1] - $ echo foobar > c - $ hg resolve -m - (no more unresolved files) - continue: hg grab --continue - - $ hg grab --continue - note: grab of 9:4e04628911f6 created no changes to commit - -Testing the abort functionality of hg grab - - $ echo foo > b - $ hg ci -Aqm "foo to b" - $ hg glog -r .^:: - hg: parse error at 4: not a prefix: end - [255] - - $ hg grab -r 7c15c05db6fa - grabbing 5:7c15c05db6fa "add b" - merging b - warning: conflicts while merging b! (edit, then use 'hg resolve --mark') - unresolved merge conflicts (see hg help resolve) - [1] - - $ hg grab --abort - aborting grab, updating to c437988de89f - - $ hg glog - @ 10:c437988de89f foo to b - | - o 8:44e155eb95c7 add c - | - o 7:2ccc03d1d096 foo to c - | - | o 5:7c15c05db6fa add b - |/ - o 4:d46dc301d92f add y - | - o 3:8e224524cd09 add x - | - o 0:1f0dee641bb7 add a - - -Trying to grab a public changeset - - $ hg phase -r 7c15c05db6fa -p - - $ hg grab -r 7c15c05db6fa - abort: cannot grab public changesets: 7c15c05db6fa - (see 'hg help phases' for details) - [255] - - $ hg glog - @ 10:c437988de89f foo to b - | - o 8:44e155eb95c7 add c - | - o 7:2ccc03d1d096 foo to c - | - | o 5:7c15c05db6fa add b - |/ - o 4:d46dc301d92f add y - | - o 3:8e224524cd09 add x - | - o 0:1f0dee641bb7 add a - -Checking phase preservation while grabbing secret changeset - -In case of merge conflicts - - $ hg phase -r 7c15c05db6fa -s -f - - $ hg grab -r 7c15c05db6fa - grabbing 5:7c15c05db6fa "add b" - merging b - warning: conflicts while merging b! (edit, then use 'hg resolve --mark') - unresolved merge conflicts (see hg help resolve) - [1] - - $ echo bar > b - $ hg resolve -m - (no more unresolved files) - continue: hg grab --continue - - $ hg grab --continue - $ hg phase -r . - 11: secret - -No merge conflicts - - $ hg up d46dc301d92f - 0 files updated, 0 files merged, 3 files removed, 0 files unresolved - $ echo foo > l - $ hg add l - $ hg ci -qm "added l" --secret - - $ hg phase -r . - 12: secret - - $ hg glog - @ 12:508d572e7053 added l - | - | o 11:10427de9e26e add b - | | - | o 10:c437988de89f foo to b - | | - | o 8:44e155eb95c7 add c - | | - | o 7:2ccc03d1d096 foo to c - |/ - o 4:d46dc301d92f add y - | - o 3:8e224524cd09 add x - | - o 0:1f0dee641bb7 add a - - $ hg up 10427de9e26e - 3 files updated, 0 files merged, 1 files removed, 0 files unresolved - - $ hg grab -r 508d572e7053 - grabbing 12:508d572e7053 "added l" - - $ hg phase -r . - 13: secret diff -r 7a5c3175015e -r b92114f201c9 tests/test-obsolete.t --- a/tests/test-obsolete.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-obsolete.t Wed Mar 21 16:35:18 2018 +0100 @@ -10,6 +10,7 @@ > debugobsolete=debugobsolete -d '0 0' > [extensions] > hgext.rebase= + > color = > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH $ mkcommit() { @@ -274,7 +275,7 @@ adding file changes added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) 1 new obsolescence markers - (run 'hg heads' to see heads, 'hg merge' to merge) + (run 'hg heads .' to see heads, 'hg merge' to merge) $ qlog -R ../other-new 6 - 909a0fb57e5d @@ -364,7 +365,7 @@ adding file changes added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) 1 new obsolescence markers - (run 'hg heads' to see heads, 'hg merge' to merge) + (run 'hg heads .' to see heads, 'hg merge' to merge) $ hg up -q 7 # to check rollback update behavior $ qlog diff -r 7a5c3175015e -r b92114f201c9 tests/test-prev-next.t --- a/tests/test-prev-next.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-prev-next.t Wed Mar 21 16:35:18 2018 +0100 @@ -2,6 +2,7 @@ > [ui] > interactive = True > [extensions] + > color = > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH diff -r 7a5c3175015e -r b92114f201c9 tests/test-prune.t --- a/tests/test-prune.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-prune.t Wed Mar 21 16:35:18 2018 +0100 @@ -2,6 +2,7 @@ > [ui] > logtemplate={rev}:{node|short}[{bookmarks}] ({separate('/', obsolete ,phase)}) {desc|firstline}\n > [extensions] + > color = > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH @@ -307,7 +308,7 @@ 1 changesets pruned $ hg id -ir dcbb326fdec2 abort: hidden revision 'dcbb326fdec2'! - (use --hidden to access hidden revisions; pruned) + (use --hidden to access hidden revisions) [255] $ hg id -ir d62d843c9a01 d62d843c9a01 @@ -341,7 +342,7 @@ $ hg tag --remove --local c $ hg id -ir 6:2702dd0c91e7 abort: hidden revision '6'! - (use --hidden to access hidden revisions; pruned) + (use --hidden to access hidden revisions) [255] $ hg debugobsstorestat diff -r 7a5c3175015e -r b92114f201c9 tests/test-topic-change.t --- a/tests/test-topic-change.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-topic-change.t Wed Mar 21 16:35:18 2018 +0100 @@ -98,7 +98,7 @@ foo (8 changesets) Changing topics on some revisions (also testing issue 5441) - $ hg topic -r abcedffeae90:: bar + $ hg topic -r 12:: bar switching to topic bar changed topic on 4 changes $ hg glog diff -r 7a5c3175015e -r b92114f201c9 tests/test-topic-stack-complex.t --- a/tests/test-topic-stack-complex.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-topic-stack-complex.t Wed Mar 21 16:35:18 2018 +0100 @@ -12,7 +12,6 @@ > [defaults] > split = -d "0 "0 > [extensions] - > show = > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH @@ -33,11 +32,31 @@ $ echo e > e $ echo f > f $ hg ci -Aqm "Added e and f" - $ hg show work - @ f1d36 Added e and f - o 8e825 Added c and d - o 002b8 Added a and b - o f3603 Added foo + $ hg log -G + @ changeset: 3:f1d3649d6a8b + | tag: tip + | topic: foo + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added e and f + | + o changeset: 2:8e8251e8193b + | topic: foo + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added c and d + | + o changeset: 1:002b85930b9c + | topic: foo + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added a and b + | + o changeset: 0:f3603c09ac10 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: Added foo + Testing in case of split within the topic @@ -93,14 +112,45 @@ t1: Added a and b t0^ Added foo (base) - $ hg show work - @ 5ccee split2 - o f26c1 split1 - | o f1d36 Added e and f - | x 8e825 Added c and d - |/ - o 002b8 Added a and b - o f3603 Added foo + $ hg log -G + @ changeset: 5:5ccee6da565e + | tag: tip + | topic: foo + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: split2 + | + o changeset: 4:f26c1b9addde + | topic: foo + | parent: 1:002b85930b9c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: split1 + | + | o changeset: 3:f1d3649d6a8b + | | topic: foo + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | trouble: unstable + | | summary: Added e and f + | | + | x changeset: 2:8e8251e8193b + |/ topic: foo + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added c and d + | + o changeset: 1:002b85930b9c + | topic: foo + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added a and b + | + o changeset: 0:f3603c09ac10 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: Added foo + $ hg prev 0 files updated, 0 files merged, 1 files removed, 0 files unresolved @@ -116,16 +166,54 @@ $ hg amend 1 new unstable changesets - $ hg show work - @ 7d944 split1 - | o 5ccee split2 - | x f26c1 split1 - |/ - | o f1d36 Added e and f - | x 8e825 Added c and d - |/ - o 002b8 Added a and b - o f3603 Added foo + + $ hg log -G + @ changeset: 7:7d9445714d83 + | tag: tip + | topic: foo + | parent: 1:002b85930b9c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: split1 + | + | o changeset: 5:5ccee6da565e + | | topic: foo + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | trouble: unstable + | | summary: split2 + | | + | x changeset: 4:f26c1b9addde + |/ topic: foo + | parent: 1:002b85930b9c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: split1 + | + | o changeset: 3:f1d3649d6a8b + | | topic: foo + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | trouble: unstable + | | summary: Added e and f + | | + | x changeset: 2:8e8251e8193b + |/ topic: foo + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added c and d + | + o changeset: 1:002b85930b9c + | topic: foo + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Added a and b + | + o changeset: 0:f3603c09ac10 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: Added foo + $ hg stack ### topic: foo (2 heads) diff -r 7a5c3175015e -r b92114f201c9 tests/test-topic-stack.t --- a/tests/test-topic-stack.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-topic-stack.t Wed Mar 21 16:35:18 2018 +0100 @@ -4,6 +4,8 @@ $ cat << EOF >> $HGRCPATH + > [extensions] + > color = > [ui] > logtemplate = {rev} {branch} \{{get(namespaces, "topics")}} {phase} {desc|firstline}\n > [experimental] diff -r 7a5c3175015e -r b92114f201c9 tests/test-topic-tutorial.t --- a/tests/test-topic-tutorial.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-topic-tutorial.t Wed Mar 21 16:35:18 2018 +0100 @@ -1812,8 +1812,9 @@ $ cd client We can now share these draft changesets: +(4.1-tests needs the --force to proceed with the test) - $ hg push ../non-publishing-server -r tools + $ hg push ../non-publishing-server -r tools --force pushing to ../non-publishing-server searching for changes adding changesets @@ -1857,12 +1858,13 @@ t0^ add a pair of shoes (base) We can also add new changesets and share them: +(4.1-tests needs the --force to proceed with the test) $ echo screws >> shopping $ hg commit -A -m "Adding screws" - $ hg push ../non-publishing-server + $ hg push ../non-publishing-server --force pushing to ../non-publishing-server searching for changes adding changesets diff -r 7a5c3175015e -r b92114f201c9 tests/test-tutorial.t --- a/tests/test-tutorial.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-tutorial.t Wed Mar 21 16:35:18 2018 +0100 @@ -1066,6 +1066,7 @@ (run 'hg heads' to see heads, 'hg merge' to merge) 1 new unstable changesets + The new changeset "animal" is based on an old changeset of "bathroom". You can see both version showing up in the log. diff -r 7a5c3175015e -r b92114f201c9 tests/test-unstable.t --- a/tests/test-unstable.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-unstable.t Wed Mar 21 16:35:18 2018 +0100 @@ -68,6 +68,153 @@ $ cd .. =============================================================================== +Test instability resolution for a merge changeset unstable because one +of its parent is obsolete +Not supported yet +============================================================================== + + $ hg init test2 + $ cd test2 + $ mkcommit base + $ mkcommits _a + $ hg up "desc(base)" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ mkcommit _c + created new head + $ hg merge "desc(_a)" >/dev/null + $ hg commit -m "merge" + $ hg up "desc(_a)" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg amend -m "aprime" + 1 new unstable changesets + $ hg log -G + @ 4:47127ea62e5f@default(draft) aprime + | + | o 3:6b4280e33286@default(draft) merge + | |\ + +---o 2:474da87dd33b@default(draft) add _c + | | + | x 1:b3264cec9506@default(draft) add _a + |/ + o 0:b4952fcf48cf@default(draft) add base + + + $ hg evo --all --any --orphan + move:[3] merge + atop:[4] aprime + working directory is now at 0bf3f3a59c8c + $ hg log -G + @ 5:0bf3f3a59c8c@default(draft) merge + |\ + | o 4:47127ea62e5f@default(draft) aprime + | | + o | 2:474da87dd33b@default(draft) add _c + |/ + o 0:b4952fcf48cf@default(draft) add base + + + $ cd .. + +=============================================================================== +Test instability resolution for a merge changeset unstable because both +of its parent are obsolete +Not supported yet +============================================================================== + + $ hg init test3 + $ cd test3 + $ mkcommit base + $ mkcommits _a + $ hg up "desc(base)" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ mkcommit _c + created new head + $ hg merge "desc(_a)" >/dev/null + $ hg commit -m "merge" + $ hg up "desc(_a)" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg amend -m "aprime" + 1 new unstable changesets + $ hg up "desc(_c)" + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg amend -m "cprime" + $ hg log -G + @ 5:2db39fda7e2f@default(draft) cprime + | + | o 4:47127ea62e5f@default(draft) aprime + |/ + | o 3:6b4280e33286@default(draft) merge + | |\ + +---x 2:474da87dd33b@default(draft) add _c + | | + | x 1:b3264cec9506@default(draft) add _a + |/ + o 0:b4952fcf48cf@default(draft) add base + + + $ hg evo --all --any --orphan + move:[3] merge + atop:[4] aprime + move:[6] merge + atop:[5] cprime + working directory is now at 2d30b910830b + $ hg log -G + @ 7:2d30b910830b@default(draft) merge + |\ + | o 5:2db39fda7e2f@default(draft) cprime + | | + o | 4:47127ea62e5f@default(draft) aprime + |/ + o 0:b4952fcf48cf@default(draft) add base + + + $ cd .. + +=============================================================================== +Test instability resolution for a changeset unstable because its parent +is obsolete with multiple successors all in one chain (simple split) +============================================================================== + + $ hg init test4 + $ cd test4 + $ mkcommits _a _b _c + $ hg up "desc(_a)" + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ mkcommits bprimesplit1 bprimesplit2 + created new head + $ hg prune "desc(_b)" -s "desc(bprimesplit1) + desc(bprimesplit2)" --split + 1 changesets pruned + 1 new unstable changesets + $ hg log -G + @ 4:2a4ccc0bb20c@default(draft) add bprimesplit2 + | + o 3:8b87864bd0f4@default(draft) add bprimesplit1 + | + | o 2:102002290587@default(draft) add _c + | | + | x 1:37445b16603b@default(draft) add _b + |/ + o 0:135f39f4bd78@default(draft) add _a + + + $ hg evo --all --any --orphan + move:[2] add _c + atop:[4] add bprimesplit2 + working directory is now at 387cc1e837d7 + $ hg log -G + @ 5:387cc1e837d7@default(draft) add _c + | + o 4:2a4ccc0bb20c@default(draft) add bprimesplit2 + | + o 3:8b87864bd0f4@default(draft) add bprimesplit1 + | + o 0:135f39f4bd78@default(draft) add _a + + + + $ cd .. + +=============================================================================== Test instability resolution for a changeset unstable because its parent is obsolete with multiple successors on one branches but in reverse order (cross-split). @@ -118,4 +265,55 @@ o 0:135f39f4bd78@default(draft) add _a + $ cd .. + +=============================================================================== +Test instability resolution for a changeset unstable because its parent +is obsolete with multiple successors on two branches. +Not supported yet +============================================================================== + + $ hg init test6 + $ cd test6 + $ mkcommits _a _b _c + $ hg up "desc(_a)" + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ mkcommit bprimesplit1 + created new head + $ hg up "desc(_a)" + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ mkcommit bprimesplit2 + created new head + $ hg prune "desc(_b)" -s "desc(bprimesplit1) + desc(bprimesplit2)" --split + 1 changesets pruned + 1 new unstable changesets + $ hg log -G + @ 4:3c69ea6aa93e@default(draft) add bprimesplit2 + | + | o 3:8b87864bd0f4@default(draft) add bprimesplit1 + |/ + | o 2:102002290587@default(draft) add _c + | | + | x 1:37445b16603b@default(draft) add _b + |/ + o 0:135f39f4bd78@default(draft) add _a + + + $ hg evo --all --any --orphan + could not solve instability, ambiguous destination: parent split across two branches + $ hg log -G + @ 4:3c69ea6aa93e@default(draft) add bprimesplit2 + | + | o 3:8b87864bd0f4@default(draft) add bprimesplit1 + |/ + | o 2:102002290587@default(draft) add _c + | | + | x 1:37445b16603b@default(draft) add _b + |/ + o 0:135f39f4bd78@default(draft) add _a + + + + $ cd .. + diff -r 7a5c3175015e -r b92114f201c9 tests/test-userguide.t --- a/tests/test-userguide.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-userguide.t Wed Mar 21 16:35:18 2018 +0100 @@ -39,7 +39,7 @@ $ hg commit --amend -u alice -d '2 0' -m 'implement feature Y' $ hg shortlog -q -r fe0ecd3bd2a4 abort: hidden revision 'fe0ecd3bd2a4'! - (use --hidden to access hidden revisions; successor: 934359450037) + (use --hidden to access hidden revisions) [255] $ hg --hidden shortlog -G @ 3:934359450037 draft implement feature Y diff -r 7a5c3175015e -r b92114f201c9 tests/test-wireproto-bundle1.t --- a/tests/test-wireproto-bundle1.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-wireproto-bundle1.t Wed Mar 21 16:35:18 2018 +0100 @@ -87,7 +87,7 @@ adding file changes added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) 2 new obsolescence markers - (run 'hg heads' to see heads) + (run 'hg heads' to see heads, 'hg merge' to merge) $ hg -R ../other pull pulling from ssh://user@dummy/server searching for changes diff -r 7a5c3175015e -r b92114f201c9 tests/test-wireproto.t --- a/tests/test-wireproto.t Wed Mar 21 16:32:54 2018 +0100 +++ b/tests/test-wireproto.t Wed Mar 21 16:35:18 2018 +0100 @@ -92,7 +92,7 @@ added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) obsmarker-exchange: 151 bytes received 2 new obsolescence markers - (run 'hg heads' to see heads) + (run 'hg heads' to see heads, 'hg merge' to merge) $ hg -R ../other pull pulling from ssh://user@dummy/server searching for changes @@ -147,7 +147,7 @@ added 1 changesets with 0 changes to 1 files (+1 heads) obsmarker-exchange: 227 bytes received 1 new obsolescence markers - (run 'hg heads' to see heads) + (run 'hg heads' to see heads, 'hg merge' to merge) test discovery avoid exchanging known markers