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 |