comparison mercurial/revlog.py @ 38818:83a505b5cf85

revlog: don't include trailing nullrev in revlog.revs(stop=len(revlog)) This was an odd side effect of the nullid entry that's in the index. The existing callers (mostly repair.py) seem to have handled it fine. It doesn't seem intentional, and it's pretty surprising, so let's remove that surprise. Differential Revision: https://phab.mercurial-scm.org/D4015
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 20 Jul 2018 11:17:33 -0700
parents 33ac6a72308a
children e7aa113b14f7
comparison
equal deleted inserted replaced
38817:65ed2fcb9032 38818:83a505b5cf85
1068 def __iter__(self): 1068 def __iter__(self):
1069 return iter(xrange(len(self))) 1069 return iter(xrange(len(self)))
1070 def revs(self, start=0, stop=None): 1070 def revs(self, start=0, stop=None):
1071 """iterate over all rev in this revlog (from start to stop)""" 1071 """iterate over all rev in this revlog (from start to stop)"""
1072 step = 1 1072 step = 1
1073 length = len(self)
1073 if stop is not None: 1074 if stop is not None:
1074 if start > stop: 1075 if start > stop:
1075 step = -1 1076 step = -1
1076 stop += step 1077 stop += step
1078 if stop > length:
1079 stop = length
1077 else: 1080 else:
1078 stop = len(self) 1081 stop = length
1079 return xrange(start, stop, step) 1082 return xrange(start, stop, step)
1080 1083
1081 @util.propertycache 1084 @util.propertycache
1082 def nodemap(self): 1085 def nodemap(self):
1083 self.rev(self.node(0)) 1086 self.rev(self.node(0))