[PATCH 4 of 4 clfilter] clfilter: remove use of xrange in revset
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue Oct 16 16:20:16 CDT 2012
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1349704493 -7200
# Node ID 3e625bb96eac55e73bb0945ede2b73ca1a29cce0
# Parent b206f2f518c3c9fa4a50b76cacd07ddc0f12bbe3
clfilter: remove use of xrange in revset
For changelog level filtering to take effect it need to be used for any
iteration. Some remaining use of `xrange` in revset code is replace by proper
use of `changelog.revs` or direct iteration over changelog.
diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -41,7 +41,7 @@
return
seen = set(revs)
- for i in xrange(first + 1, len(cl)):
+ for i in cl.revs(first + 1):
for x in cl.parentrevs(i)[:cut]:
if x != nullrev and x in seen:
seen.add(i)
@@ -1209,7 +1209,7 @@
# i18n: "matching" is a keyword
l = getargs(x, 1, 2, _("matching takes 1 or 2 arguments"))
- revs = getset(repo, xrange(len(repo)), l[0])
+ revs = getset(repo, repo.changelog, l[0])
fieldlist = ['metadata']
if len(l) > 1:
@@ -1307,7 +1307,7 @@
"""``roots(set)``
Changesets in set with no parent changeset in set.
"""
- s = set(getset(repo, xrange(len(repo)), x))
+ s = set(getset(repo, repo.changelog, x))
subset = [r for r in subset if r in s]
cs = _children(repo, subset, s)
return [r for r in subset if r not in cs]
More information about the Mercurial-devel
mailing list