diff -r c470e699cd00 -r c093fb81404f mercurial/repoview.py --- 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