Mercurial > public > mercurial-scm > hg
diff mercurial/revlogutils/debug.py @ 51069:810446d2d5ef
debug-delta-chaing: add a parameter to select revision to look at
This allows for much faster runtime when we are interrested in some revisions only.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 19 Sep 2023 01:24:10 +0200 |
parents | 793a058f64bd |
children | 752e380c5702 |
line wrap: on
line diff
--- 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)