diff -r 1b65fb4d43d6 -r d63153611ed5 mercurial/utils/storageutil.py --- a/mercurial/utils/storageutil.py Mon Sep 24 14:54:28 2018 -0700 +++ b/mercurial/utils/storageutil.py Mon Sep 24 15:19:52 2018 -0700 @@ -13,6 +13,9 @@ from ..node import ( nullid, ) +from .. import ( + pycompat, +) _nullhash = hashlib.sha1(nullid) @@ -81,3 +84,18 @@ offset = text.index(b'\x01\n', 2) return text[offset + 2:] + +def iterrevs(storelen, start=0, stop=None): + """Iterate over revision numbers in a store.""" + step = 1 + + if stop is not None: + if start > stop: + step = -1 + stop += step + if stop > storelen: + stop = storelen + else: + stop = storelen + + return pycompat.xrange(start, stop, step)