D7239: repoview: move changelog.__iter__() override to filteredchangelog
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Nov 6 00:59:37 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D7239
AFFECTED FILES
mercurial/changelog.py
mercurial/repoview.py
CHANGE DETAILS
diff --git a/mercurial/repoview.py b/mercurial/repoview.py
--- a/mercurial/repoview.py
+++ b/mercurial/repoview.py
@@ -21,6 +21,7 @@
obsolete,
phases,
pycompat,
+ revlog,
tags as tagsmod,
util,
)
@@ -233,6 +234,18 @@
"""filtered version of revlog.__contains__"""
return 0 <= rev < len(self) and rev not in self.filteredrevs
+ def __iter__(self):
+ """filtered version of revlog.__iter__"""
+ if len(self.filteredrevs) == 0:
+ return revlog.revlog.__iter__(self)
+
+ def filterediter():
+ for i in pycompat.xrange(len(self)):
+ if i not in self.filteredrevs:
+ yield i
+
+ return filterediter()
+
cl.__class__ = filteredchangelog
return cl
diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -405,18 +405,6 @@
self.filteredrevs = frozenset()
self._copiesstorage = opener.options.get(b'copies-storage')
- def __iter__(self):
- """filtered version of revlog.__iter__"""
- if len(self.filteredrevs) == 0:
- return revlog.revlog.__iter__(self)
-
- def filterediter():
- for i in pycompat.xrange(len(self)):
- if i not in self.filteredrevs:
- yield i
-
- return filterediter()
-
def revs(self, start=0, stop=None):
"""filtered version of revlog.revs"""
for i in super(changelog, self).revs(start, stop):
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list