hgext/transplant.py
changeset 17009 0c18aed2fcca
parent 16991 1aae34f109fd
child 17010 a6c64211acdb
--- a/hgext/transplant.py	Fri Jun 08 07:59:37 2012 -0700
+++ b/hgext/transplant.py	Fri Jun 08 08:39:44 2012 -0700
@@ -91,14 +91,22 @@
         '''returns True if a node is already an ancestor of parent
         or has already been transplanted'''
         if hasnode(repo, node):
-            if node in repo.changelog.reachable(parent, stop=node):
+            reachablerevs = repo.changelog.incancestors(
+                [repo.changelog.rev(parent)],
+                stoprev=repo.changelog.rev(node))
+            reachable = (repo.changelog.node(rev) for rev in reachablerevs)
+            if node in reachable:
                 return True
         for t in self.transplants.get(node):
             # it might have been stripped
             if not hasnode(repo, t.lnode):
                 self.transplants.remove(t)
                 return False
-            if t.lnode in repo.changelog.reachable(parent, stop=t.lnode):
+            reachablerevs = repo.changelog.incancestors(
+                [repo.changelog.rev(parent)],
+                stoprev=repo.changelog.rev(t.lnode))
+            reachable = (repo.changelog.node(rev) for rev in reachablerevs)
+            if t.lnode in reachable:
                 return True
         return False