[PATCH 1 of 3] clfilter: use changelog to iterate over the repo in branchpoint
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Mon Oct 15 15:46:15 UTC 2012
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1350315760 -7200
# Node ID c3eb9666d9fb25fa7c23410075390923e587ba9d
# Parent 9837cafc25b10c51659b65b5971622eab0bc9197
clfilter: use changelog to iterate over the repo in branchpoint
Otherwise filtered changesets may cause false positives in `branchpoint()`.
diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -927,11 +927,11 @@ def branchpoint(repo, subset, x):
cl = repo.changelog
if not subset:
return []
baserev = min(subset)
parentscount = [0]*(len(repo) - baserev)
- for r in xrange(baserev + 1, len(repo)):
+ for r in cl.revs(start=baserev + 1):
for p in cl.parentrevs(r):
if p >= baserev:
parentscount[p - baserev] += 1
branchpoints = set((baserev + i) for i in xrange(len(parentscount))
if parentscount[i] > 1)
More information about the Mercurial-devel
mailing list