mercurial/repoview.py
changeset 51977 42a116f1cdc1
parent 51969 22da1dc97281
child 51979 609700e5d8df
--- a/mercurial/repoview.py	Tue Sep 03 02:13:03 2024 +0200
+++ b/mercurial/repoview.py	Tue Sep 03 11:11:17 2024 +0200
@@ -310,9 +310,14 @@
         # no Rust fast path implemented yet, so just loop in Python
         return [self.node(r) for r in self.headrevs()]
 
-    def headrevs(self, revs=None):
+    def headrevs(self, revs=None, stop_rev=None):
         if revs is None:
-            return self.index.headrevs(self.filteredrevs)
+            filtered = self.filteredrevs
+            if stop_rev is not None and stop_rev < len(self.index):
+                filtered = set(self.filteredrevs)
+                filtered.update(range(stop_rev, len(self.index)))
+            return self.index.headrevs(filtered)
+        assert stop_rev is None
 
         revs = self._checknofilteredinrevs(revs)
         return super(filteredchangelogmixin, self).headrevs(revs)