[PATCH 3 of 6 v6] transplant: convert applied() algorithm from nodes to revs
Joshua Redstone
joshua.redstone at fb.com
Fri Jun 8 21:27:40 UTC 2012
# HG changeset patch
# User Joshua Redstone <joshua.redstone at fb.com>
# Date 1339190492 25200
# Node ID 9f026dfe19467aa71024bd07b8277fd625c91327
# Parent 11ddfec95abc3ca5905cac95d41075cc3e4fdc79
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.
diff -r 11ddfec95abc -r 9f026dfe1946 hgext/transplant.py
--- 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
More information about the Mercurial-devel
mailing list