comparison mercurial/changelog.py @ 43445:c093fb81404f

repoview: move changelog.__iter__() override to filteredchangelog Differential Revision: https://phab.mercurial-scm.org/D7239
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 05 Nov 2019 14:12:10 -0800
parents c470e699cd00
children 5ade47284dda
comparison
equal deleted inserted replaced
43444:c470e699cd00 43445:c093fb81404f
402 self._delayed = False 402 self._delayed = False
403 self._delaybuf = None 403 self._delaybuf = None
404 self._divert = False 404 self._divert = False
405 self.filteredrevs = frozenset() 405 self.filteredrevs = frozenset()
406 self._copiesstorage = opener.options.get(b'copies-storage') 406 self._copiesstorage = opener.options.get(b'copies-storage')
407
408 def __iter__(self):
409 """filtered version of revlog.__iter__"""
410 if len(self.filteredrevs) == 0:
411 return revlog.revlog.__iter__(self)
412
413 def filterediter():
414 for i in pycompat.xrange(len(self)):
415 if i not in self.filteredrevs:
416 yield i
417
418 return filterediter()
419 407
420 def revs(self, start=0, stop=None): 408 def revs(self, start=0, stop=None):
421 """filtered version of revlog.revs""" 409 """filtered version of revlog.revs"""
422 for i in super(changelog, self).revs(start, stop): 410 for i in super(changelog, self).revs(start, stop):
423 if i not in self.filteredrevs: 411 if i not in self.filteredrevs: