mercurial/revlogutils/debug.py
changeset 51069 810446d2d5ef
parent 51068 793a058f64bd
child 51070 752e380c5702
--- a/mercurial/revlogutils/debug.py	Mon Sep 18 23:37:06 2023 +0200
+++ b/mercurial/revlogutils/debug.py	Tue Sep 19 01:24:10 2023 +0200
@@ -801,7 +801,7 @@
         return p1, p2, compsize, uncompsize, deltatype, chain, chain_size
 
 
-def debug_delta_chain(revlog):
+def debug_delta_chain(revlog, revs=None):
     auditor = DeltaChainAuditor(revlog)
     r = revlog
     start = r.start
@@ -818,8 +818,14 @@
     header += b'\n'
     yield header
 
+    if revs is None:
+        all_revs = iter(r)
+    else:
+        revlog_size = len(r)
+        all_revs = sorted(rev for rev in revs if rev < revlog_size)
+
     chainbases = {}
-    for rev in r:
+    for rev in all_revs:
         p1, p2, comp, uncomp, deltatype, chain, chainsize = auditor.revinfo(rev)
         chainbase = chain[0]
         chainid = chainbases.setdefault(chainbase, len(chainbases) + 1)