changeset 38777: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 65ed2fcb9032
children a4d847cea6f8
files mercurial/revlog.py
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/revlog.py	Mon Jul 16 14:15:29 2018 -0400
+++ b/mercurial/revlog.py	Fri Jul 20 11:17:33 2018 -0700
@@ -1070,12 +1070,15 @@
     def revs(self, start=0, stop=None):
         """iterate over all rev in this revlog (from start to stop)"""
         step = 1
+        length = len(self)
         if stop is not None:
             if start > stop:
                 step = -1
             stop += step
+            if stop > length:
+                stop = length
         else:
-            stop = len(self)
+            stop = length
         return xrange(start, stop, step)
 
     @util.propertycache