diff -r 3fe3f3070df9 -r 88601e1cd5d8 hgext3rd/evolve/evolvecmd.py --- a/hgext3rd/evolve/evolvecmd.py Tue May 22 20:33:42 2018 +0530 +++ b/hgext3rd/evolve/evolvecmd.py Mon Apr 23 14:48:53 2018 +0530 @@ -33,7 +33,6 @@ from mercurial.i18n import _ from . import ( - cmdrewrite, compat, exthelper, rewriteutil, @@ -447,25 +446,23 @@ tr = repo.currenttransaction() assert tr is not None try: - repo.ui.setconfig('ui', 'allowemptycommit', True, 'evolve') with repo.dirstate.parentchange(): - 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() + repo.dirstate.setparents(divergent.p1().node(), node.nullid) - # 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): + newnode = repo.commit(text=divergent.description(), user=repo.ui.username()) + if newnode == divergent.node() or newnode is None: + # no changes new = divergent - # no changes + repo.ui.status(_("nothing changed\n")) + hg.updaterepo(repo, divergent.rev(), False) + obsolete.createmarkers(repo, [(other, (new,))], operation='evolve') else: - new = repo['.'] + new = repo[newnode] + hg.updaterepo(repo, new.rev(), False) + obsolete.createmarkers(repo, [(other, (new,))], operation='evolve') + obsolete.createmarkers(repo, [(divergent, (new,))], operation='evolve') # 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: