--- 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: