diff mercurial/revlog.py @ 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 33ac6a72308a
children e7aa113b14f7
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