--- 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)