mercurial/repoview.py
changeset 43445 c093fb81404f
parent 43444 c470e699cd00
child 43446 5ade47284dda
--- a/mercurial/repoview.py	Tue Nov 05 14:11:30 2019 -0800
+++ b/mercurial/repoview.py	Tue Nov 05 14:12:10 2019 -0800
@@ -21,6 +21,7 @@
     obsolete,
     phases,
     pycompat,
+    revlog,
     tags as tagsmod,
     util,
 )
@@ -233,6 +234,19 @@
             """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