--- a/hgext3rd/evolve/evolvecmd.py Sun Jun 03 01:59:41 2018 +0530
+++ b/hgext3rd/evolve/evolvecmd.py Tue Jun 05 00:53:21 2018 +0530
@@ -33,6 +33,7 @@
from mercurial.i18n import _
from . import (
+ cmdrewrite,
compat,
exthelper,
rewriteutil,
@@ -446,23 +447,25 @@
tr = repo.currenttransaction()
assert tr is not None
try:
+ repo.ui.setconfig('ui', 'allowemptycommit', True, 'evolve')
with repo.dirstate.parentchange():
- repo.dirstate.setparents(divergent.p1().node(), node.nullid)
+ repo.dirstate.setparents(divergent.node(), node.nullid)
+ oldlen = len(repo)
+ # temporary hack because we can't use cmdrewrite.amend() during an
+ # interrupted evolve
+ evolvestate.delete()
- newnode = repo.commit(text=divergent.description(), user=repo.ui.username())
- if newnode == divergent.node() or newnode is None:
- # no changes
+ # XXX: we should not use amend here, rather create a new commit
+ cmdrewrite.amend(ui, repo, message='', logfile='')
+ # XXX: we can get rid of this len() call also by creating a new commit
+ if oldlen == len(repo):
new = divergent
- repo.ui.status(_("nothing changed\n"))
- hg.updaterepo(repo, divergent.rev(), False)
- obsolete.createmarkers(repo, [(other, (new,))], operation='evolve')
+ # no changes
else:
- new = repo[newnode]
- hg.updaterepo(repo, new.rev(), False)
- obsolete.createmarkers(repo, [(other, (new,))], operation='evolve')
- obsolete.createmarkers(repo, [(divergent, (new,))], operation='evolve')
+ new = repo['.']
# creating markers and moving phases post-resolution
+ obsolete.createmarkers(repo, [(other, (new,))], operation='evolve')
phases.retractboundary(repo, tr, other.phase(), [new.node()])
return (True, new.node())
finally: