Mercurial > public > mercurial-scm > hg
comparison 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 |
comparison
equal
deleted
inserted
replaced
51068:793a058f64bd | 51069:810446d2d5ef |
---|---|
799 self._chain_size_cache[rev] = chain_size | 799 self._chain_size_cache[rev] = chain_size |
800 | 800 |
801 return p1, p2, compsize, uncompsize, deltatype, chain, chain_size | 801 return p1, p2, compsize, uncompsize, deltatype, chain, chain_size |
802 | 802 |
803 | 803 |
804 def debug_delta_chain(revlog): | 804 def debug_delta_chain(revlog, revs=None): |
805 auditor = DeltaChainAuditor(revlog) | 805 auditor = DeltaChainAuditor(revlog) |
806 r = revlog | 806 r = revlog |
807 start = r.start | 807 start = r.start |
808 length = r.length | 808 length = r.length |
809 withsparseread = revlog.data_config.with_sparse_read | 809 withsparseread = revlog.data_config.with_sparse_read |
816 if withsparseread: | 816 if withsparseread: |
817 header += b' readsize largestblk rddensity srchunks' | 817 header += b' readsize largestblk rddensity srchunks' |
818 header += b'\n' | 818 header += b'\n' |
819 yield header | 819 yield header |
820 | 820 |
821 if revs is None: | |
822 all_revs = iter(r) | |
823 else: | |
824 revlog_size = len(r) | |
825 all_revs = sorted(rev for rev in revs if rev < revlog_size) | |
826 | |
821 chainbases = {} | 827 chainbases = {} |
822 for rev in r: | 828 for rev in all_revs: |
823 p1, p2, comp, uncomp, deltatype, chain, chainsize = auditor.revinfo(rev) | 829 p1, p2, comp, uncomp, deltatype, chain, chainsize = auditor.revinfo(rev) |
824 chainbase = chain[0] | 830 chainbase = chain[0] |
825 chainid = chainbases.setdefault(chainbase, len(chainbases) + 1) | 831 chainid = chainbases.setdefault(chainbase, len(chainbases) + 1) |
826 basestart = start(chainbase) | 832 basestart = start(chainbase) |
827 revstart = start(rev) | 833 revstart = start(rev) |