test-compat: merge mercurial-4.2 into mercurial-4.1 mercurial-4.1
authorPierre-Yves David <pierre-yves.david@octobus.net>
Wed, 21 Mar 2018 16:35:18 +0100
branchmercurial-4.1
changeset 3593 b92114f201c9
parent 3592 7a5c3175015e (current diff)
parent 3442 7ac98f83ae6d (diff)
child 3600 6fd84046d4a4
test-compat: merge mercurial-4.2 into mercurial-4.1
hgext3rd/topic/__init__.py
tests/test-discovery-obshashrange.t
tests/test-evolve-continue.t
tests/test-evolve-cycles.t
tests/test-evolve-obshistory.t
tests/test-evolve-orphan-merge.t
tests/test-evolve-orphan-split.t
tests/test-evolve-stop.t
tests/test-evolve-templates.t
tests/test-evolve-topic.t
tests/test-evolve.t
tests/test-exchange-obsmarkers-case-B5.t
tests/test-fold.t
tests/test-grab.t
tests/test-obsolete.t
tests/test-prev-next.t
tests/test-prune.t
tests/test-topic-change.t
tests/test-topic-stack-complex.t
tests/test-topic-stack.t
tests/test-topic-tutorial.t
tests/test-tutorial.t
tests/test-unstable.t
tests/test-userguide.t
tests/test-wireproto.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)
--- 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 <<EOF
-  > [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<<EOF
-  > 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<<EOF
-  > 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"
--- 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": [
--- 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
--- 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 <<EOF
-  > [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
--- 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 <<EOF
-  > [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 <<EOF
-  > 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 . <<EOF
-  > 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 <<EOF
-  > 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 <<EOF
-  > 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 <<EOF
-  > 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 <<EOF
-  > 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 <<EOF
-  > -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 <<EOF
-  > 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 <<EOF
-  > 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
--- 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/
--- 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 <<EOF
-  > [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
--- 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
-  
--- 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
--- 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')
   
--- 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)
--- 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
--- 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 <<EOF
-  > [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
--- 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
--- 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
 
--- 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
--- 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
--- 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)
--- 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]
--- 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
--- 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.
 
--- 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 ..
+
--- 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
--- 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
--- 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