hgext/evolution.py
changeset 113 3bdabdbb4140
parent 108 85271a8a7fb9
child 116 64ca29eef349
--- a/hgext/evolution.py	Mon Dec 19 14:05:25 2011 +0100
+++ b/hgext/evolution.py	Mon Dec 19 14:37:24 2011 +0100
@@ -16,6 +16,7 @@
 from mercurial import extensions
 from mercurial import commands
 from mercurial import bookmarks
+from mercurial import phases
 from mercurial import context
 from mercurial import util
 from mercurial.i18n import _
@@ -124,13 +125,13 @@
         rebase = extensions.find('rebase')
         # dummy state to trick rebase node
         assert repo[rev].p2().rev() == node.nullrev, 'no support yet'
-        rebase.updatedirstate(repo, rev, repo[dest].node(),
+        cmdutil.duplicatecopies(repo, rev, repo[dest].node(),
                                          repo[rev].p2().node())
         rebase.rebasenode(repo, rev, dest, {node.nullrev: node.nullrev})
         nodenew = rebase.concludenode(repo, rev, dest, node.nullid)
         nodesrc = repo.changelog.node(rev)
         repo.addobsolete(nodenew, nodesrc)
-        repo.setstate(repo.nodestate(nodesrc), [nodenew])
+        phases.retractboundary(repo, repo[nodesrc].phase(), [nodenew])
         oldbookmarks = repo.nodebookmarks(nodesrc)
         for book in oldbookmarks:
             repo._bookmarks[book] = nodenew
@@ -262,7 +263,7 @@
 
     wlock = repo.wlock()
     try:
-        if not old.state().mutable:
+        if not old.phase():
             raise util.Abort(_("can not rewrite immutable changeset %s") % old)
 
         # commit current changes as update
@@ -294,7 +295,7 @@
                         [old.p1().node(), old.p2().node()], opts)
 
         # reroute the working copy parent to the new changeset
-        repo.setstate(repo.nodestate(old.node()), [newid])
+        phases.retractboundary(repo, old.phase(), [newid])
         repo.dirstate.setparents(newid, node.nullid)
 
     finally: