[PATCH 5 of 8 clfilter-part1] clfilter: split `revlog.headrevs` C call from python code
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Thu Sep 20 12:12:12 CDT 2012
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1346674785 -7200
# Node ID 44939e75738049162e9d0e48ea310d1f2970a430
# Parent 90376bfc2f426a89571a1d6cb05ad068a4f512c1
clfilter: split `revlog.headrevs` C call from python code
Make the pure python implementation of headrevs available to derived classes. It
is important because filtering logic applied by `revlog` derived class won't
have effect on `index`. We want to be able to bypass this C call to implement
our own.
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -605,11 +605,13 @@ class revlog(object):
def headrevs(self):
try:
return self.index.headrevs()
except AttributeError:
- pass
+ return self._headrevs()
+
+ def _headrevs(self):
count = len(self)
if not count:
return [nullrev]
# we won't iter over filtered rev so nobody is a head at start
ishead = [0] * (count + 1)
More information about the Mercurial-devel
mailing list