Mercurial > public > mercurial-scm > hg
comparison mercurial/debugcommands.py @ 49221:75d0775dce7f
debugdeltachain: also display p1/p2
Looking at the parents is a common need when trying to understanding why a delta
was chosen, having it readily available helps a lot.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 18 May 2022 17:22:32 +0100 |
parents | 0a86cb154e83 |
children | e7d23c512d3d |
comparison
equal
deleted
inserted
replaced
49220:3376b5d9a697 | 49221:75d0775dce7f |
---|---|
756 """dump information about delta chains in a revlog | 756 """dump information about delta chains in a revlog |
757 | 757 |
758 Output can be templatized. Available template keywords are: | 758 Output can be templatized. Available template keywords are: |
759 | 759 |
760 :``rev``: revision number | 760 :``rev``: revision number |
761 :``p1``: parent 1 revision number (for reference) | |
762 :``p2``: parent 2 revision number (for reference) | |
761 :``chainid``: delta chain identifier (numbered by unique base) | 763 :``chainid``: delta chain identifier (numbered by unique base) |
762 :``chainlen``: delta chain length to this revision | 764 :``chainlen``: delta chain length to this revision |
763 :``prevrev``: previous revision in delta chain | 765 :``prevrev``: previous revision in delta chain |
764 :``deltatype``: role of delta / how it was computed | 766 :``deltatype``: role of delta / how it was computed |
765 :``compsize``: compressed size of revision | 767 :``compsize``: compressed size of revision |
827 chain = r._deltachain(rev)[0] | 829 chain = r._deltachain(rev)[0] |
828 for iterrev in chain: | 830 for iterrev in chain: |
829 e = index[iterrev] | 831 e = index[iterrev] |
830 chainsize += e[revlog_constants.ENTRY_DATA_COMPRESSED_LENGTH] | 832 chainsize += e[revlog_constants.ENTRY_DATA_COMPRESSED_LENGTH] |
831 | 833 |
832 return compsize, uncompsize, deltatype, chain, chainsize | 834 return p1, p2, compsize, uncompsize, deltatype, chain, chainsize |
833 | 835 |
834 fm = ui.formatter(b'debugdeltachain', opts) | 836 fm = ui.formatter(b'debugdeltachain', opts) |
835 | 837 |
836 fm.plain( | 838 fm.plain( |
837 b' rev chain# chainlen prev delta ' | 839 b' rev p1 p2 chain# chainlen prev delta ' |
838 b'size rawsize chainsize ratio lindist extradist ' | 840 b'size rawsize chainsize ratio lindist extradist ' |
839 b'extraratio' | 841 b'extraratio' |
840 ) | 842 ) |
841 if withsparseread: | 843 if withsparseread: |
842 fm.plain(b' readsize largestblk rddensity srchunks') | 844 fm.plain(b' readsize largestblk rddensity srchunks') |
843 fm.plain(b'\n') | 845 fm.plain(b'\n') |
844 | 846 |
845 chainbases = {} | 847 chainbases = {} |
846 for rev in r: | 848 for rev in r: |
847 comp, uncomp, deltatype, chain, chainsize = revinfo(rev) | 849 p1, p2, comp, uncomp, deltatype, chain, chainsize = revinfo(rev) |
848 chainbase = chain[0] | 850 chainbase = chain[0] |
849 chainid = chainbases.setdefault(chainbase, len(chainbases) + 1) | 851 chainid = chainbases.setdefault(chainbase, len(chainbases) + 1) |
850 basestart = start(chainbase) | 852 basestart = start(chainbase) |
851 revstart = start(rev) | 853 revstart = start(rev) |
852 lineardist = revstart + comp - basestart | 854 lineardist = revstart + comp - basestart |
866 else: | 868 else: |
867 extraratio = extradist | 869 extraratio = extradist |
868 | 870 |
869 fm.startitem() | 871 fm.startitem() |
870 fm.write( | 872 fm.write( |
871 b'rev chainid chainlen prevrev deltatype compsize ' | 873 b'rev p1 p2 chainid chainlen prevrev deltatype compsize ' |
872 b'uncompsize chainsize chainratio lindist extradist ' | 874 b'uncompsize chainsize chainratio lindist extradist ' |
873 b'extraratio', | 875 b'extraratio', |
874 b'%7d %7d %8d %8d %7s %10d %10d %10d %9.5f %9d %9d %10.5f', | 876 b'%7d %7d %7d %7d %8d %8d %7s %10d %10d %10d %9.5f %9d %9d %10.5f', |
875 rev, | 877 rev, |
878 p1, | |
879 p2, | |
876 chainid, | 880 chainid, |
877 len(chain), | 881 len(chain), |
878 prevrev, | 882 prevrev, |
879 deltatype, | 883 deltatype, |
880 comp, | 884 comp, |