mercurial/revlog.py
changeset 51973 42a116f1cdc1
parent 51965 22da1dc97281
child 51975 609700e5d8df
--- 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)