changeset 742:760d01a549a6

amend: use core mechanism for amend Evolve used its own code for amending. This was introduced before mercurial includes commit --amend. The evolve code is now older and buggier. So we just use the core cod when amend is called. Message of the temporary commit is different, all test hash changed \o/. Test change are been carefully checked.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Wed, 16 Oct 2013 00:37:29 +0200
parents 892a6d708c8f
children af74a5cdf96b
files hgext/evolve.py tests/test-amend.t tests/test-evolve.t tests/test-stabilize-conflict.t tests/test-stabilize-order.t tests/test-stabilize-result.t
diffstat 6 files changed, 126 insertions(+), 185 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/evolve.py	Tue Oct 15 16:20:17 2013 +0200
+++ b/hgext/evolve.py	Wed Oct 16 00:37:29 2013 +0200
@@ -1166,7 +1166,7 @@
         try:
             repo.dirstate.setparents(divergent.node(), node.nullid)
             oldlen = len(repo)
-            amend(ui, repo)
+            amend(ui, repo, message='', logfile='')
             if oldlen == len(repo):
                 new = divergent
                 # no changes
@@ -1379,6 +1379,9 @@
     [('A', 'addremove', None,
      _('mark new/missing files as added/removed before committing')),
     ('e', 'edit', False, _('invoke editor on commit messages')),
+    ('', 'close-branch', None,
+     _('mark a branch as closed, hiding it from the branch list')),
+    ('s', 'secret', None, _('use the secret phase for committing')),
     ] + walkopts + commitopts + commitopts2,
     _('[OPTION]... [FILE]...'))
 def amend(ui, repo, *pats, **opts):
@@ -1399,79 +1402,13 @@
 
     Returns 0 on success, 1 if nothing changed.
     """
-
-    # determine updates to subsume
-    old = scmutil.revsingle(repo, '.')
-    metadata = _getmetadata(**opts)
-
-    lock = repo.lock()
-    try:
-        wlock = repo.wlock()
-        try:
-            if old.phase() == phases.public:
-                raise util.Abort(_("can not rewrite immutable changeset %s")
-                                 % old)
-            tr = repo.transaction('amend')
-            try:
-                oldphase = old.phase()
-                # commit current changes as update
-                # code copied from commands.commit to avoid noisy messages
-                ciopts = dict(opts)
-                ciopts.pop('message', None)
-                ciopts.pop('logfile', None)
-                ciopts['message'] = 'amends %s' % old.hex()
-                e = cmdutil.commiteditor
-                def commitfunc(ui, repo, message, match, opts):
-                    return repo.commit(message, opts.get('user'), opts.get('date'),
-                                       match, editor=e)
-                revcount = len(repo)
-                tempid = cmdutil.commit(ui, repo, commitfunc, pats, ciopts)
-                if len(repo) == revcount:
-                    # No revision created
-                    tempid = None
-
-                # find all changesets to be considered updates
-                head = repo['.']
-                updatenodes = set(repo.changelog.nodesbetween(
-                        roots=[old.node()], heads=[head.node()])[0])
-                updatenodes.remove(old.node())
-                okoptions = ['message', 'logfile', 'edit', 'user']
-                if not updatenodes:
-                    for o in okoptions:
-                        if opts.get(o):
-                            break
-                    else:
-                        raise error.Abort(_('no updates found'))
-                updates = [repo[n] for n in updatenodes]
-
-                # perform amend
-                if opts.get('edit'):
-                    opts['force_editor'] = True
-                newid, created = rewrite(repo, old, updates, head,
-                                         [old.p1().node(), old.p2().node()], opts)
-
-                if newid != old.node():
-                    createmarkers(repo, [(old, (repo[newid],))])
-                if tempid is not None:
-                    createmarkers(repo, [(repo[tempid], ())])
-                if created:
-                    # reroute the working copy parent to the new changeset
-                    phases.retractboundary(repo, oldphase, [newid])
-                    repo.dirstate.setparents(newid, node.nullid)
-                else:
-                    # rewrite() recreated an existing revision, discard
-                    # the intermediate revision if any. No need to update
-                    # phases or parents.
-                    # XXX: need another message in collapse case.
-                    tr.close()
-                    raise error.Abort(_('no updates found'))
-                tr.close()
-            finally:
-                tr.release()
-        finally:
-            wlock.release()
-    finally:
-        lock.release()
+    opts = opts.copy()
+    edit = opts.pop('edit', False)
+    opts['amend'] = True
+    if not (edit or opts['message']):
+        opts['message'] = repo['.'].description()
+    _alias, commitcmd = cmdutil.findcmd('commit', commands.table)
+    return commitcmd[0](ui, repo, *pats, **opts)
 
 def _commitfiltered(repo, ctx, match):
     """Recommit ctx with changed files not in match. Return the new
@@ -1793,7 +1730,7 @@
     except KeyError:
         raise error.Abort(_('evolution extension requires rebase extension.'))
 
-    for cmd in ['amend', 'kill', 'uncommit', 'touch', 'fold']:
+    for cmd in ['kill', 'uncommit', 'touch', 'fold']:
         entry = extensions.wrapcommand(cmdtable, cmd,
                                        warnobserrors)
 
--- a/tests/test-amend.t	Tue Oct 15 16:20:17 2013 +0200
+++ b/tests/test-amend.t	Wed Oct 16 00:37:29 2013 +0200
@@ -24,20 +24,20 @@
   (branches are permanent and global, did you want a bookmark?)
   $ hg amend
   $ hg debugobsolete
-  07f4944404050f47db2e5c5071e0e84e7a27bba9 a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob)
-  bd19cbe78fbfbd87eb33420c63986fe5f3154f2c 0 {'date': '* *', 'user': 'test'} (glob)
+  07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 {'date': '* *', 'user': 'test'} (glob)
+  b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {'date': '* *', 'user': 'test'} (glob)
   $ hg branch
   foo
   $ hg branches
-  foo                            2:a34b93d251e4
+  foo                            2:6a022cbb61d5
   $ glog
   @  2@foo(draft) adda
   
 Test no-op
 
   $ hg amend
-  abort: no updates found
-  [255]
+  nothing changed
+  [1]
   $ glog
   @  2@foo(draft) adda
   
@@ -45,8 +45,8 @@
 Test forcing the message to the same value, no intermediate revision.
 
   $ hg amend -m 'adda'
-  abort: no updates found
-  [255]
+  nothing changed
+  [1]
   $ glog
   @  2@foo(draft) adda
   
@@ -60,7 +60,7 @@
   M a
   $ hg pstatus
   $ hg diff
-  diff -r 2f97fe38810f a
+  diff -r f7a50201fe3a a
   --- a/a	Thu Jan 01 00:00:00 1970 +0000
   +++ b/a	* +0000 (glob)
   @@ -1,2 +1,1 @@
@@ -69,8 +69,8 @@
   $ hg pdiff
   $ hg ci -m reseta
   $ hg debugobsolete
-  07f4944404050f47db2e5c5071e0e84e7a27bba9 a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob)
-  bd19cbe78fbfbd87eb33420c63986fe5f3154f2c 0 {'date': '* *', 'user': 'test'} (glob)
+  07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 {'date': '* *', 'user': 'test'} (glob)
+  b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {'date': '* *', 'user': 'test'} (glob)
   $ hg phase 2
   2: draft
   $ glog
--- a/tests/test-evolve.t	Tue Oct 15 16:20:17 2013 +0200
+++ b/tests/test-evolve.t	Wed Oct 16 00:37:29 2013 +0200
@@ -217,7 +217,6 @@
 
   $ hg amend
 
-
 This results in a new single changeset for our amended changeset, and the old
 changeset plus the updating changeset are hidden from view by default::
 
@@ -247,13 +246,13 @@
   0	: base - test
   $ hg up -q 0
   $ glog --hidden
-  o  6:23409eba69a0@default(draft) a nifty feature
+  o  6:ba0ec09b1bab@default(draft) a nifty feature
   |
-  | x  5:1c85604a32e4@default(draft) amends 568a468b60fc99a42d5d4ddbe181caff1eef308d
+  | x  5:c296b79833d1@default(draft) temporary amend commit for 568a468b60fc
   | |
-  | | o  4:f8111a076f09@default(draft) another feature
+  | | o  4:207cbc4ea7fe@default(draft) another feature
   | |/
-  | | x  3:80ebe8e4ea86@default(draft) amends 7b36850622b2fd159fa30a4fb2a1edd2043b4a14
+  | | x  3:5bb880fc0f12@default(draft) temporary amend commit for 7b36850622b2
   | | |
   | | x  2:7b36850622b2@default(draft) another feature
   | |/
@@ -262,10 +261,10 @@
   @  0:e55e0562ee93@default(public) base
   
   $ hg debugobsolete
-  7b36850622b2fd159fa30a4fb2a1edd2043b4a14 f8111a076f0975cbecb336e2bd3411be22b673fb 0 {'date': '* *', 'user': 'test'} (glob)
-  80ebe8e4ea869802d88c96622bed8ad34aff9d37 0 {'date': '* *', 'user': 'test'} (glob)
-  568a468b60fc99a42d5d4ddbe181caff1eef308d 23409eba69a0986e90cd42252852c1e6da97af5b 0 {'date': '* *', 'user': 'test'} (glob)
-  1c85604a32e4fec7b2d804c6f8cbaf4de9925ee3 0 {'date': '* *', 'user': 'test'} (glob)
+  7b36850622b2fd159fa30a4fb2a1edd2043b4a14 207cbc4ea7fee30d18b3a25f534fe5db22c6071b 0 {'date': '* *', 'user': 'test'} (glob)
+  5bb880fc0f12dd61eee6de36f62b93fdbc3684b0 0 {'date': '* *', 'user': 'test'} (glob)
+  568a468b60fc99a42d5d4ddbe181caff1eef308d ba0ec09b1babf3489b567853807f452edd46704f 0 {'date': '* *', 'user': 'test'} (glob)
+  c296b79833d1d497f33144786174bf35e04e44a3 0 {'date': '* *', 'user': 'test'} (glob)
   $ hg evolve
   move:[4] another feature
   atop:[6] a nifty feature
@@ -310,9 +309,9 @@
   recreate:[8] another feature that rox
   atop:[7] another feature
   computing new diff
-  commited as d3c9b3a5c458
+  commited as ca3b75e3e59b
   $ hg glog
-  @  9	feature-B: bumped update to 5f4744038ed5: - test
+  @  9	feature-B: bumped update to abe98aeaaa35: - test
   |
   o  7	: another feature - test
   |
--- a/tests/test-stabilize-conflict.t	Tue Oct 15 16:20:17 2013 +0200
+++ b/tests/test-stabilize-conflict.t	Wed Oct 16 00:37:29 2013 +0200
@@ -82,13 +82,13 @@
   merging babar
   $ hg resolve -l
   $ hg log -G
-  @  changeset:   5:800217d738cd
+  @  changeset:   5:71c18f70c34f
   |  tag:         tip
   |  user:        test
   |  date:        Thu Jan 01 00:00:00 1970 +0000
   |  summary:     babar count up to fifteen
   |
-  o  changeset:   4:6bd654225435
+  o  changeset:   4:5977072d13c5
   |  parent:      0:29ec1554cfaf
   |  user:        test
   |  date:        Thu Jan 01 00:00:00 1970 +0000
@@ -109,7 +109,7 @@
   [4] babar count up to ten
   $ safesed 's/dix/ten/' babar
   $ hg diff
-  diff -r 6bd654225435 babar
+  diff -r 5977072d13c5 babar
   --- a/babar	Thu Jan 01 00:00:00 1970 +0000
   +++ b/babar	* (glob)
   @@ -7,4 +7,4 @@
@@ -133,19 +133,19 @@
   $ hg resolve -l
   U babar
   $ hg log -G
-  @  changeset:   7:3e191dd96e18
+  @  changeset:   7:e04690b09bc6
   |  tag:         tip
   |  parent:      0:29ec1554cfaf
   |  user:        test
   |  date:        Thu Jan 01 00:00:00 1970 +0000
   |  summary:     babar count up to ten
   |
-  | @  changeset:   5:800217d738cd
+  | @  changeset:   5:71c18f70c34f
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
   | |  summary:     babar count up to fifteen
   | |
-  | x  changeset:   4:6bd654225435
+  | x  changeset:   4:5977072d13c5
   |/   parent:      0:29ec1554cfaf
   |    user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
@@ -166,13 +166,13 @@
   grafting revision 5
   $ hg resolve -l
   $ hg log -G
-  @  changeset:   8:92429cce7036
+  @  changeset:   8:1836b91c6c1d
   |  tag:         tip
   |  user:        test
   |  date:        Thu Jan 01 00:00:00 1970 +0000
   |  summary:     babar count up to fifteen
   |
-  o  changeset:   7:3e191dd96e18
+  o  changeset:   7:e04690b09bc6
   |  parent:      0:29ec1554cfaf
   |  user:        test
   |  date:        Thu Jan 01 00:00:00 1970 +0000
@@ -193,7 +193,7 @@
   [7] babar count up to ten
   $ safesed 's/ten/zehn/' babar
   $ hg diff
-  diff -r 3e191dd96e18 babar
+  diff -r e04690b09bc6 babar
   --- a/babar	Thu Jan 01 00:00:00 1970 +0000
   +++ b/babar	* (glob)
   @@ -7,4 +7,4 @@
@@ -220,19 +220,19 @@
   $ hg resolve -l
   U babar
   $ hg log -G
-  @  changeset:   10:a7fe09efd4a1
+  @  changeset:   10:b20d08eea373
   |  tag:         tip
   |  parent:      0:29ec1554cfaf
   |  user:        test
   |  date:        Thu Jan 01 00:00:00 1970 +0000
   |  summary:     babar count up to ten
   |
-  | @  changeset:   8:92429cce7036
+  | @  changeset:   8:1836b91c6c1d
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
   | |  summary:     babar count up to fifteen
   | |
-  | x  changeset:   7:3e191dd96e18
+  | x  changeset:   7:e04690b09bc6
   |/   parent:      0:29ec1554cfaf
   |    user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
--- a/tests/test-stabilize-order.t	Tue Oct 15 16:20:17 2013 +0200
+++ b/tests/test-stabilize-order.t	Wed Oct 16 00:37:29 2013 +0200
@@ -47,9 +47,9 @@
   $ hg amend
   1 new unstable changesets
   $ glog
-  @  7:f5ff10856e5a@default(draft) adda
+  @  7:005fe5914f78@default(draft) adda
   |
-  | o  5:ab8cbb6d87ff@default(draft) addb
+  | o  5:22619daeed78@default(draft) addb
   | |
   | | o  3:7a7552255fb5@default(draft) addc
   | | |
@@ -65,14 +65,14 @@
   $ hg evolve -v
   move:[5] addb
   atop:[7] adda
-  hg rebase -r ab8cbb6d87ff -d f5ff10856e5a
+  hg rebase -r 22619daeed78 -d 005fe5914f78
   resolving manifests
   getting b
   b
   $ glog
-  @  8:6bf44048e43f@default(draft) addb
+  @  8:bede829dd2d3@default(draft) addb
   |
-  o  7:f5ff10856e5a@default(draft) adda
+  o  7:005fe5914f78@default(draft) adda
   |
   | o  3:7a7552255fb5@default(draft) addc
   | |
@@ -91,7 +91,7 @@
   $ hg evolve -v
   move:[3] addc
   atop:[8] addb
-  hg rebase -r 7a7552255fb5 -d 6bf44048e43f
+  hg rebase -r 7a7552255fb5 -d bede829dd2d3
   resolving manifests
   getting b
   resolving manifests
@@ -102,17 +102,20 @@
   --- successors.old* (glob)
   +++ successors.new* (glob)
   @@ -3,3 +3,4 @@
-   93418d2c0979643ad446f621195e78720edb05b4 f5ff10856e5ab3c8dc420b9c11460e6832a3b78c 0 {'date': '* *', 'user': 'test'} (glob)
-   3a4a591493f80708e46f2bf6d3b4debfad8ff91e 0 {'date': '* *', 'user': 'test'} (glob)
-   ab8cbb6d87ff3ab5526735a051cba6b63f3d6775 6bf44048e43f830accbf7d2bd7bc252ad7a3b99c 0 {'date': '* *', 'user': 'test'} (glob)
-  +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 5e819fbb0d278117c0a83b7f6f6486689732cfb2 0 {'date': '* *', 'user': 'test'} (glob)
+   93418d2c0979643ad446f621195e78720edb05b4 005fe5914f78e8bc64c7eba28117b0b1fa210d0d 0 {'date': '* *', 'user': 'test'} (glob)
+   7a7d76dc97c57751de9e80f61ed2a639bd03cd24 0 {'date': '* *', 'user': 'test'} (glob)
+   22619daeed78036f80fbd326b6852519c4f0c25e bede829dd2d3b2ae9bf198c23432b250dc964458 0 {'date': '* *', 'user': 'test'} (glob)
+  +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 65095d7d0dd5e4f15503bb7b1f433a5fe9bac052 0 {'date': '* *', 'user': 'test'} (glob)
   [1]
+
+
+
   $ glog
-  @  9:5e819fbb0d27@default(draft) addc
+  @  9:65095d7d0dd5@default(draft) addc
   |
-  o  8:6bf44048e43f@default(draft) addb
+  o  8:bede829dd2d3@default(draft) addb
   |
-  o  7:f5ff10856e5a@default(draft) adda
+  o  7:005fe5914f78@default(draft) adda
   |
   o  0:c471ef929e6a@default(draft) addroot
   
@@ -128,13 +131,13 @@
   $ hg amend
   1 new unstable changesets
   $ glog
-  @  11:4e7cec6b4afe@default(draft) addb
+  @  11:036cf654e942@default(draft) addb
   |
-  | o  9:5e819fbb0d27@default(draft) addc
+  | o  9:65095d7d0dd5@default(draft) addc
   | |
-  | x  8:6bf44048e43f@default(draft) addb
+  | x  8:bede829dd2d3@default(draft) addb
   |/
-  o  7:f5ff10856e5a@default(draft) adda
+  o  7:005fe5914f78@default(draft) adda
   |
   o  0:c471ef929e6a@default(draft) addroot
   
@@ -147,7 +150,7 @@
   $ hg evolve --any -v
   move:[9] addc
   atop:[11] addb
-  hg rebase -r 5e819fbb0d27 -d 4e7cec6b4afe
+  hg rebase -r 65095d7d0dd5 -d 036cf654e942
   resolving manifests
   removing c
   getting b
@@ -155,11 +158,11 @@
   getting c
   c
   $ glog
-  @  12:24f95816bb21@default(draft) addc
+  @  12:e99ecf51c867@default(draft) addc
   |
-  o  11:4e7cec6b4afe@default(draft) addb
+  o  11:036cf654e942@default(draft) addb
   |
-  o  7:f5ff10856e5a@default(draft) adda
+  o  7:005fe5914f78@default(draft) adda
   |
   o  0:c471ef929e6a@default(draft) addroot
   
--- a/tests/test-stabilize-result.t	Tue Oct 15 16:20:17 2013 +0200
+++ b/tests/test-stabilize-result.t	Wed Oct 16 00:37:29 2013 +0200
@@ -31,12 +31,12 @@
   $ hg evolve -v
   move:[2] changea
   atop:[4] changea
-  hg rebase -r cce2c55b8965 -d 1447e1c4828d
+  hg rebase -r cce2c55b8965 -d fb9d051ec0a4
   resolving manifests
   $ glog --hidden
-  @  4:1447e1c4828d@default(draft) bk:[changea] changea
+  @  4:fb9d051ec0a4@default(draft) bk:[changea] changea
   |
-  | x  3:41ad4fe8c795@default(draft) bk:[] amends 102a90ea7b4a3361e4082ed620918c261189a36a
+  | x  3:c5727dbded3c@default(draft) bk:[] temporary amend commit for 102a90ea7b4a
   | |
   | | x  2:cce2c55b8965@default(draft) bk:[] changea
   | |/
@@ -45,8 +45,8 @@
   o  0:07f494440405@default(draft) bk:[] adda
   
   $ hg debugobsolete
-  102a90ea7b4a3361e4082ed620918c261189a36a 1447e1c4828d2347df8f858aa041305fa4cf7db1 0 {'date': '* *', 'user': 'test'} (glob)
-  41ad4fe8c79565a06c89f032ef0937b3cbd68a04 0 {'date': '* *', 'user': 'test'} (glob)
+  102a90ea7b4a3361e4082ed620918c261189a36a fb9d051ec0a450a4aa2ffc8c324979832ef88065 0 {'date': '* *', 'user': 'test'} (glob)
+  c5727dbded3c3a6877cf60d6bb552a76812cb844 0 {'date': '* *', 'user': 'test'} (glob)
   cce2c55b896511e0b6e04173c9450ba822ebc740 0 {'date': '* *', 'user': 'test'} (glob)
 
 Test evolve with conflict
@@ -81,7 +81,7 @@
   [255]
   $ hg revert -r 'unstable()' a
   $ hg diff
-  diff -r e8cc1b534401 a
+  diff -r 66719795a494 a
   --- a/a	* (glob)
   +++ b/a	* (glob)
   @@ -1,1 +1,3 @@
@@ -102,9 +102,9 @@
 (the same parent case is handled in test-evolve.t)
 
   $ glog
-  @  8:e3183e9c0961@default(draft) bk:[] newer a
+  @  8:1cf0aacfd363@default(draft) bk:[] newer a
   |
-  o  7:e8cc1b534401@default(draft) bk:[changea] changea
+  o  7:66719795a494@default(draft) bk:[changea] changea
   |
   o  0:07f494440405@default(draft) bk:[] adda
   
@@ -132,13 +132,13 @@
   $ hg phase --hidden --public 8
   1 new bumped changesets
   $ glog
-  @  12:15c83af6f3a3@default(draft) bk:[] newer a
+  @  12:73b15c7566e9@default(draft) bk:[] newer a
   |
-  o  9:355c5cda4de1@default(draft) bk:[] add c
+  o  9:7bc2f5967f5e@default(draft) bk:[] add c
   |
-  | o  8:e3183e9c0961@default(public) bk:[] newer a
+  | o  8:1cf0aacfd363@default(public) bk:[] newer a
   |/
-  o  7:e8cc1b534401@default(public) bk:[changea] changea
+  o  7:66719795a494@default(public) bk:[changea] changea
   |
   o  0:07f494440405@default(public) bk:[] adda
   
@@ -148,24 +148,24 @@
   $ hg evolve --any --dry-run
   recreate:[12] newer a
   atop:[8] newer a
-  hg rebase --rev 15c83af6f3a3 --dest e8cc1b534401;
-  hg update e3183e9c0961;
-  hg revert --all --rev 15c83af6f3a3;
+  hg rebase --rev 73b15c7566e9 --dest 66719795a494;
+  hg update 1cf0aacfd363;
+  hg revert --all --rev 73b15c7566e9;
   hg commit --msg "bumped update to %s" (no-eol)
   $ hg evolve --any
   recreate:[12] newer a
   atop:[8] newer a
-  rebasing to destination parent: e8cc1b534401
+  rebasing to destination parent: 66719795a494
   computing new diff
-  commited as 503ef784bae6
+  commited as a7cabd7bd9c2
   $ glog
-  @  14:503ef784bae6@default(draft) bk:[] bumped update to e3183e9c0961:
+  @  14:a7cabd7bd9c2@default(draft) bk:[] bumped update to 1cf0aacfd363:
   |
-  | o  9:355c5cda4de1@default(draft) bk:[] add c
+  | o  9:7bc2f5967f5e@default(draft) bk:[] add c
   | |
-  o |  8:e3183e9c0961@default(public) bk:[] newer a
+  o |  8:1cf0aacfd363@default(public) bk:[] newer a
   |/
-  o  7:e8cc1b534401@default(public) bk:[changea] changea
+  o  7:66719795a494@default(public) bk:[changea] changea
   |
   o  0:07f494440405@default(public) bk:[] adda
   
@@ -186,15 +186,15 @@
   > EOF
   $ hg ci -m 'More addition'
   $ glog
-  @  15:7391601a4bfa@default(draft) bk:[] More addition
+  @  15:3932c176bbaa@default(draft) bk:[] More addition
   |
-  | o  14:503ef784bae6@default(draft) bk:[] bumped update to e3183e9c0961:
+  | o  14:a7cabd7bd9c2@default(draft) bk:[] bumped update to 1cf0aacfd363:
   | |
-  o |  9:355c5cda4de1@default(draft) bk:[] add c
+  o |  9:7bc2f5967f5e@default(draft) bk:[] add c
   | |
-  | o  8:e3183e9c0961@default(public) bk:[] newer a
+  | o  8:1cf0aacfd363@default(public) bk:[] newer a
   |/
-  o  7:e8cc1b534401@default(public) bk:[changea] changea
+  o  7:66719795a494@default(public) bk:[changea] changea
   |
   o  0:07f494440405@default(public) bk:[] adda
   
@@ -210,17 +210,17 @@
   $ hg amend
   2 new divergent changesets
   $ glog
-  @  19:3883461cc228@default(draft) bk:[] More addition
+  @  19:eacc9c8240fe@default(draft) bk:[] More addition
   |
-  | o  17:4754d61bc2db@default(draft) bk:[] More addition
+  | o  17:d2f173e25686@default(draft) bk:[] More addition
   |/
-  | o  14:503ef784bae6@default(draft) bk:[] bumped update to e3183e9c0961:
+  | o  14:a7cabd7bd9c2@default(draft) bk:[] bumped update to 1cf0aacfd363:
   | |
-  o |  9:355c5cda4de1@default(draft) bk:[] add c
+  o |  9:7bc2f5967f5e@default(draft) bk:[] add c
   | |
-  | o  8:e3183e9c0961@default(public) bk:[] newer a
+  | o  8:1cf0aacfd363@default(public) bk:[] newer a
   |/
-  o  7:e8cc1b534401@default(public) bk:[changea] changea
+  o  7:66719795a494@default(public) bk:[changea] changea
   |
   o  0:07f494440405@default(public) bk:[] adda
   
@@ -228,12 +228,12 @@
 Stabilize It
 
   $ hg evolve -qn --traceback
-  hg update -c 3883461cc228 &&
-  hg merge 4754d61bc2db &&
-  hg commit -m "auto merge resolving conflict between 3883461cc228 and 4754d61bc2db"&&
-  hg up -C 7391601a4bfa &&
+  hg update -c eacc9c8240fe &&
+  hg merge d2f173e25686 &&
+  hg commit -m "auto merge resolving conflict between eacc9c8240fe and d2f173e25686"&&
+  hg up -C 3932c176bbaa &&
   hg revert --all --rev tip &&
-  hg commit -m "`hg log -r 3883461cc228 --template={desc}`";
+  hg commit -m "`hg log -r eacc9c8240fe --template={desc}`";
   $ hg evolve -v
   merge:[19] More addition
   with: [17] More addition
@@ -242,25 +242,27 @@
   resolving manifests
   merging a
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  amending changeset eacc9c8240fe
   a
+  copying changeset 283ccd10e2b8 to 7bc2f5967f5e
   a
+  committed changeset 21:f344982e63c4
   $ hg st
-  $ hg amend -d '0 0' -m 'More addition' # kill date variation XXX should be done in evolve
   $ glog
-  @  22:ac6d600735a4@default(draft) bk:[] More addition
+  @  21:f344982e63c4@default(draft) bk:[] More addition
   |
-  | o  14:503ef784bae6@default(draft) bk:[] bumped update to e3183e9c0961:
+  | o  14:a7cabd7bd9c2@default(draft) bk:[] bumped update to 1cf0aacfd363:
   | |
-  o |  9:355c5cda4de1@default(draft) bk:[] add c
+  o |  9:7bc2f5967f5e@default(draft) bk:[] add c
   | |
-  | o  8:e3183e9c0961@default(public) bk:[] newer a
+  | o  8:1cf0aacfd363@default(public) bk:[] newer a
   |/
-  o  7:e8cc1b534401@default(public) bk:[changea] changea
+  o  7:66719795a494@default(public) bk:[changea] changea
   |
   o  0:07f494440405@default(public) bk:[] adda
   
   $ hg summary
-  parent: 22:ac6d600735a4 tip
+  parent: 21:f344982e63c4 tip
    More addition
   branch: default
   commit: (clean)
@@ -270,11 +272,11 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID ac6d600735a49ee377e29d1f74a0576e8c972e7b
-  # Parent  355c5cda4de162658ed9f961a98a73a10b3167b1
+  # Node ID f344982e63c462b1e44c0371c804685389e673a9
+  # Parent  7bc2f5967f5e4ed277f60a89b7b04cc5d6407ced
   More addition
   
-  diff -r 355c5cda4de1 -r ac6d600735a4 a
+  diff -r 7bc2f5967f5e -r f344982e63c4 a
   --- a/a	Thu Jan 01 00:00:00 1970 +0000
   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,1 +1,9 @@
@@ -298,18 +300,18 @@
   $ hg amend
   2 new divergent changesets
   $ hg phase 'divergent()'
-  22: draft
-  24: draft
+  21: draft
+  23: draft
   $ hg evolve -qn
-  hg update -c c956a4b140b6 &&
-  hg merge ac6d600735a4 &&
-  hg commit -m "auto merge resolving conflict between c956a4b140b6 and ac6d600735a4"&&
-  hg up -C 7391601a4bfa &&
+  hg update -c 36e188246d67 &&
+  hg merge f344982e63c4 &&
+  hg commit -m "auto merge resolving conflict between 36e188246d67 and f344982e63c4"&&
+  hg up -C 3932c176bbaa &&
   hg revert --all --rev tip &&
-  hg commit -m "`hg log -r c956a4b140b6 --template={desc}`";
+  hg commit -m "`hg log -r 36e188246d67 --template={desc}`";
   $ hg evolve
-  merge:[24] More addition
-  with: [22] More addition
+  merge:[23] More addition
+  with: [21] More addition
   base: [15] More addition
   merging a
   warning: conflicts during merge.