[PATCH 2 of 4 v2] convert: refactor head calculation for hg sources
Mads Kiilerich
mads at kiilerich.com
Thu Oct 10 18:46:15 UTC 2013
# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1380816081 -7200
# Thu Oct 03 18:01:21 2013 +0200
# Node ID 3951cebb6743fee2b68a835d9097cb2d8784d230
# Parent b8151cd615f0e6407c89cb1cd4454cef3a9802e4
convert: refactor head calculation for hg sources
diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py
--- a/hgext/convert/hg.py
+++ b/hgext/convert/hg.py
@@ -260,11 +260,15 @@
% startnode)
startrev = self.repo.changelog.rev(startnode)
children = {startnode: 1}
- for rev in self.repo.changelog.descendants([startrev]):
- children[self.repo.changelog.node(rev)] = 1
+ for r in self.repo.changelog.descendants([startrev]):
+ children[self.repo.changelog.node(r)] = 1
self.keep = children.__contains__
else:
self.keep = util.always
+ if rev:
+ self._heads = [self.repo[rev].node()]
+ else:
+ self._heads = self.repo.heads()
def changectx(self, rev):
if self.lastrev != rev:
@@ -276,11 +280,7 @@
return [p for p in ctx.parents() if p and self.keep(p.node())]
def getheads(self):
- if self.rev:
- heads = [self.repo[self.rev].node()]
- else:
- heads = self.repo.heads()
- return [hex(h) for h in heads if self.keep(h)]
+ return [hex(h) for h in self._heads if self.keep(h)]
def getfile(self, name, rev):
try:
More information about the Mercurial-devel
mailing list