--- a/hgext3rd/evolve/obshistory.py Wed Apr 25 14:19:13 2018 +0100
+++ b/hgext3rd/evolve/obshistory.py Wed May 02 11:59:06 2018 +0200
@@ -285,7 +285,7 @@
changectx = missingchangectx(repo, cand)
childrens = [(graphmod.PARENT, x) for x in nodeprec.get(cand, ())]
- yield (cand, 'M', changectx, childrens)
+ yield (cand, graphmod.CHANGESET, changectx, childrens)
def _obshistorywalker_links(repo, revs, walksuccessors=False):
""" Iterate the obs history tree starting from revs, traversing
@@ -391,7 +391,9 @@
_debugobshistorydisplaymissingctx(fm, node)
def _debugobshistorydisplayctx(fm, ctx):
- shortdescription = ctx.description().splitlines()[0]
+ shortdescription = ctx.description().strip()
+ if shortdescription:
+ shortdescription = shortdescription.splitlines()[0]
fm.startitem()
fm.write('node', '%s', str(ctx),
--- a/tests/test-evolve-obshistory.t Wed Apr 25 14:19:13 2018 +0100
+++ b/tests/test-evolve-obshistory.t Wed May 02 11:59:06 2018 +0200
@@ -16,6 +16,23 @@
> evolution.effect-flags = yes
> EOF
+Test simple common cases
+========================
+
+Test setup
+----------
+ $ hg init $TESTTMP/simple
+ $ cd $TESTTMP/simple
+
+Actual test
+-----------
+ $ hg obslog -ap null
+ @ 000000000000 (-1)
+
+ $ hg obslog 'wdir()'
+ abort: working directory revision cannot be specified
+ [255]
+
Test output on amended commit
=============================
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-evolve-stop-orphan.t Wed May 02 11:59:06 2018 +0200
@@ -0,0 +1,384 @@
+Tests for the --stop flag for `hg evolve` command while resolving orphans
+=========================================================================
+
+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
+
+This is testing cases when `hg evolve` command is doing orphan resolution.
+
+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 orphan changesets
+ $ hg glog
+ @ 5:cb6a2ab625bb added c
+ | () draft
+ | * 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:[5] 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 evolve --abort' 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
+ @ 5:cb6a2ab625bb added c
+ | () draft
+ | * 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:[5] 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 evolve --abort' 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 Thu Jan 01 00:00:00 1970 +0000
+ @@ -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
+ @ 5:cb6a2ab625bb added c
+ | () draft
+ | * 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:[5] 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 evolve --abort' 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
+ @ 6:2a4e03d422e2 added d
+ | () draft
+ o 5: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 orphan changesets
+
+ $ hg glog
+ @ 7:21817cd42526 added hgignore
+ () draft
+ * 6:2a4e03d422e2 added d
+ | () draft
+ * 5:cb6a2ab625bb added c
+ | () draft
+ * 2:b1661037fa25 added b
+ | () draft
+ * 1:c7586e2a9264 added a
+ | () draft
+ x 0:8fa14d15e168 added hgignore
+ () draft
+
+ $ hg evolve --all
+ move:[1] added a
+ atop:[7] added hgignore
+ move:[2] added b
+ atop:[8] added a
+ move:[5] added c
+ atop:[9] 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 evolve --abort' 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
+ @ 9:aec285328e90 added b
+ | () draft
+ o 8:fd00db71edca added a
+ | () draft
+ o 7:21817cd42526 added hgignore
+ () draft
+ * 6:2a4e03d422e2 added d
+ | () draft
+ * 5: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:[5] added c
+ atop:[9] 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 evolve --abort' 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 5:cb6a2ab625bb "added c"
+ move:[6] added d
+ atop:[10] added c
+ working directory is now at cd0909a30222
+ $ hg glog
+ @ 11:cd0909a30222 added d
+ | () draft
+ o 10:cb1dd1086ef6 added c
+ | () draft
+ o 9:aec285328e90 added b
+ | () draft
+ o 8:fd00db71edca added a
+ | () draft
+ o 7: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 11:cd0909a30222 added d
+ | () draft
+ o 10:cb1dd1086ef6 added c
+ | (b1) draft
+ @ 9:aec285328e90 added b
+ | (b2) draft
+ o 8:fd00db71edca added a
+ | () draft
+ o 7:21817cd42526 added hgignore
+ () draft
+
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [8] added a
+ $ echo tom > c
+ $ hg amend
+ 3 new orphan changesets
+
+ $ hg glog
+ @ 12:a3cc2042492f added a
+ | () draft
+ | * 11:cd0909a30222 added d
+ | | () draft
+ | * 10:cb1dd1086ef6 added c
+ | | (b1) draft
+ | * 9:aec285328e90 added b
+ | | (b2) draft
+ | x 8:fd00db71edca added a
+ |/ () draft
+ o 7:21817cd42526 added hgignore
+ () draft
+
+ $ hg evolve --all
+ move:[9] added b
+ atop:[12] added a
+ move:[10] added c
+ atop:[13] 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 evolve --abort' 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
+ @ 13:a3f4b95da934 added b
+ | (b2) draft
+ o 12:a3cc2042492f added a
+ | () draft
+ | * 11:cd0909a30222 added d
+ | | () draft
+ | * 10:cb1dd1086ef6 added c
+ | | (b1) draft
+ | x 9:aec285328e90 added b
+ | | () draft
+ | x 8:fd00db71edca added a
+ |/ () draft
+ o 7:21817cd42526 added hgignore
+ () draft
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-evolve-stop-phasediv.t Wed May 02 11:59:06 2018 +0200
@@ -0,0 +1,109 @@
+Tests for the --stop flag for `hg evolve` command while resolving phase-divergence
+==================================================================================
+
+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
+
+This is testing cases when `hg evolve` command is doing phase-divergence resolution.
+
+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
+
+Creating phase divergence, resolution of which will lead to conflicts
+----------------------------------------------------------------------
+
+ $ hg up .^^^
+ 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
+ $ hg grab -r .~-3
+ grabbing 4:c41c793e0ef1 "added d"
+ $ echo foobar > c
+ $ hg add c
+ $ hg amend
+
+ $ hg glog --hidden
+ @ 6:ddba58020bc0 added d
+ | () draft
+ | x 5:cfe30edc6125 added d
+ |/ () draft
+ | x 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
+
+ $ hg phase -r c41c793e0ef1 --public --hidden
+ 1 new phase-divergent changesets
+
+ $ hg glog
+ @ 6:ddba58020bc0 added d
+ | () draft
+ | o 4:c41c793e0ef1 added d
+ | | () public
+ | o 3:ca1b80f7960a added c
+ | | () public
+ | o 2:b1661037fa25 added b
+ |/ () public
+ o 1:c7586e2a9264 added a
+ | () public
+ o 0:8fa14d15e168 added hgignore
+ () public
+ $ hg evolve --phase-divergent
+ recreate:[6] added d
+ atop:[4] added d
+ rebasing to destination parent: ca1b80f7960a
+ merging c
+ warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
+ evolution failed!
+ fix conflict then run 'hg evolve --continue' or use `hg evolve --abort`
+ abort: unresolved merge conflicts (see hg help resolve)
+ [255]
+
+ $ hg evolve --stop
+ stopped the interrupted evolve
+ working directory is now at ca1b80f7960a
+
+XXX: maybe we should update wdir to where it was
+ $ hg glog
+ * 6:ddba58020bc0 added d
+ | () draft
+ | o 4:c41c793e0ef1 added d
+ | | () public
+ | @ 3:ca1b80f7960a added c
+ | | () public
+ | o 2:b1661037fa25 added b
+ |/ () public
+ o 1:c7586e2a9264 added a
+ | () public
+ o 0:8fa14d15e168 added hgignore
+ () public
--- a/tests/test-evolve-stop.t Wed Apr 25 14:19:13 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 orphan changesets
- $ hg glog
- @ 5:cb6a2ab625bb added c
- | () draft
- | * 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:[5] 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 evolve --abort' 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
- @ 5:cb6a2ab625bb added c
- | () draft
- | * 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:[5] 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 evolve --abort' 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 Thu Jan 01 00:00:00 1970 +0000
- @@ -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
- @ 5:cb6a2ab625bb added c
- | () draft
- | * 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:[5] 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 evolve --abort' 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
- @ 6:2a4e03d422e2 added d
- | () draft
- o 5: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 orphan changesets
-
- $ hg glog
- @ 7:21817cd42526 added hgignore
- () draft
- * 6:2a4e03d422e2 added d
- | () draft
- * 5:cb6a2ab625bb added c
- | () draft
- * 2:b1661037fa25 added b
- | () draft
- * 1:c7586e2a9264 added a
- | () draft
- x 0:8fa14d15e168 added hgignore
- () draft
-
- $ hg evolve --all
- move:[1] added a
- atop:[7] added hgignore
- move:[2] added b
- atop:[8] added a
- move:[5] added c
- atop:[9] 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 evolve --abort' 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
- @ 9:aec285328e90 added b
- | () draft
- o 8:fd00db71edca added a
- | () draft
- o 7:21817cd42526 added hgignore
- () draft
- * 6:2a4e03d422e2 added d
- | () draft
- * 5: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:[5] added c
- atop:[9] 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 evolve --abort' 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 5:cb6a2ab625bb "added c"
- move:[6] added d
- atop:[10] added c
- working directory is now at cd0909a30222
- $ hg glog
- @ 11:cd0909a30222 added d
- | () draft
- o 10:cb1dd1086ef6 added c
- | () draft
- o 9:aec285328e90 added b
- | () draft
- o 8:fd00db71edca added a
- | () draft
- o 7: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 11:cd0909a30222 added d
- | () draft
- o 10:cb1dd1086ef6 added c
- | (b1) draft
- @ 9:aec285328e90 added b
- | (b2) draft
- o 8:fd00db71edca added a
- | () draft
- o 7:21817cd42526 added hgignore
- () draft
-
- $ hg prev
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- [8] added a
- $ echo tom > c
- $ hg amend
- 3 new orphan changesets
-
- $ hg glog
- @ 12:a3cc2042492f added a
- | () draft
- | * 11:cd0909a30222 added d
- | | () draft
- | * 10:cb1dd1086ef6 added c
- | | (b1) draft
- | * 9:aec285328e90 added b
- | | (b2) draft
- | x 8:fd00db71edca added a
- |/ () draft
- o 7:21817cd42526 added hgignore
- () draft
-
- $ hg evolve --all
- move:[9] added b
- atop:[12] added a
- move:[10] added c
- atop:[13] 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 evolve --abort' 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
- @ 13:a3f4b95da934 added b
- | (b2) draft
- o 12:a3cc2042492f added a
- | () draft
- | * 11:cd0909a30222 added d
- | | () draft
- | * 10:cb1dd1086ef6 added c
- | | (b1) draft
- | x 9:aec285328e90 added b
- | | () draft
- | x 8:fd00db71edca added a
- |/ () draft
- o 7:21817cd42526 added hgignore
- () draft