transplant: convert applied() algorithm from nodes to revs
After a recent switch from revlog.reachable to revlog.ancestors,
clean up the code a bit to use revs rather than nodes.
--- a/hgext/transplant.py Fri Jun 08 08:39:44 2012 -0700
+++ b/hgext/transplant.py Fri Jun 08 14:21:32 2012 -0700
@@ -89,24 +89,21 @@
def applied(self, repo, node, parent):
'''returns True if a node is already an ancestor of parent
- or has already been transplanted'''
+ or is parent or has already been transplanted'''
+ if hasnode(repo, parent):
+ parentrev = repo.changelog.rev(parent)
if hasnode(repo, 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:
+ rev = repo.changelog.rev(node)
+ reachable = repo.changelog.incancestors([parentrev], rev)
+ if rev 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
- 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:
+ lnoderev = repo.changelog.rev(t.lnode)
+ if lnoderev in repo.changelog.incancestors([parentrev], lnoderev):
return True
return False