--- a/mercurial/revlog.py Tue Sep 03 02:13:03 2024 +0200
+++ b/mercurial/revlog.py Tue Sep 03 11:11:17 2024 +0200
@@ -2380,9 +2380,15 @@
assert heads
return (orderedout, roots, heads)
- def headrevs(self, revs=None):
+ def headrevs(self, revs=None, stop_rev=None):
if revs is None:
- return self.index.headrevs()
+ excluded = None
+ if stop_rev is not None and stop_rev < len(self.index):
+ # We should let the native code handle it, but that a
+ # simple enough first step.
+ excluded = range(stop_rev, len(self.index))
+ return self.index.headrevs(excluded)
+ assert stop_rev is None
if rustdagop is not None and self.index.rust_ext_compat:
return rustdagop.headrevs(self.index, revs)
return dagop.headrevs(revs, self._uncheckedparentrevs)