[PATCH 3 of 6 v8] transplant: convert applied() algorithm from nodes to revs
Joshua Redstone
joshua.redstone at fb.com
Tue Jun 19 15:21:16 CDT 2012
# HG changeset patch
# User Joshua Redstone <joshua.redstone at fb.com>
# Date 1339190492 25200
# Node ID 360c7136e67a6843f2cc53b6a2eba33ac8d84fa2
# Parent 92da57dd98d426c6329a4f50a8d4861a3e2a2015
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 --git a/hgext/transplant.py b/hgext/transplant.py
--- a/hgext/transplant.py
+++ b/hgext/transplant.py
@@ -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