comparison mercurial/debugcommands.py @ 49240:0a86cb154e83

debugdeltachain: use the symbolic constant to access entry information This is more robust and easier to read
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 18 May 2022 16:07:55 +0100
parents 5b1495c37b0c
children 75d0775dce7f
comparison
equal deleted inserted replaced
49239:5b1495c37b0c 49240:0a86cb154e83
101 stringutil, 101 stringutil,
102 urlutil, 102 urlutil,
103 ) 103 )
104 104
105 from .revlogutils import ( 105 from .revlogutils import (
106 constants as revlog_constants,
106 deltas as deltautil, 107 deltas as deltautil,
107 nodemap, 108 nodemap,
108 rewrite, 109 rewrite,
109 sidedata, 110 sidedata,
110 ) 111 )
794 generaldelta = r._generaldelta 795 generaldelta = r._generaldelta
795 withsparseread = getattr(r, '_withsparseread', False) 796 withsparseread = getattr(r, '_withsparseread', False)
796 797
797 def revinfo(rev): 798 def revinfo(rev):
798 e = index[rev] 799 e = index[rev]
799 compsize = e[1] 800 compsize = e[revlog_constants.ENTRY_DATA_COMPRESSED_LENGTH]
800 uncompsize = e[2] 801 uncompsize = e[revlog_constants.ENTRY_DATA_UNCOMPRESSED_LENGTH]
801 chainsize = 0 802 chainsize = 0
802 803
804 base = e[revlog_constants.ENTRY_DELTA_BASE]
805 p1 = e[revlog_constants.ENTRY_PARENT_1]
806 p2 = e[revlog_constants.ENTRY_PARENT_2]
807
803 if generaldelta: 808 if generaldelta:
804 if e[3] == e[5]: 809 if base == p1:
805 deltatype = b'p1' 810 deltatype = b'p1'
806 elif e[3] == e[6]: 811 elif base == p2:
807 deltatype = b'p2' 812 deltatype = b'p2'
808 elif e[3] == rev: 813 elif base == rev:
809 deltatype = b'base' 814 deltatype = b'base'
810 elif r.issnapshot(rev): 815 elif r.issnapshot(rev):
811 deltatype = b'snap' 816 deltatype = b'snap'
812 elif e[3] == rev - 1: 817 elif base == rev - 1:
813 deltatype = b'prev' 818 deltatype = b'prev'
814 else: 819 else:
815 deltatype = b'other' 820 deltatype = b'other'
816 else: 821 else:
817 if e[3] == rev: 822 if base == rev:
818 deltatype = b'base' 823 deltatype = b'base'
819 else: 824 else:
820 deltatype = b'prev' 825 deltatype = b'prev'
821 826
822 chain = r._deltachain(rev)[0] 827 chain = r._deltachain(rev)[0]
823 for iterrev in chain: 828 for iterrev in chain:
824 e = index[iterrev] 829 e = index[iterrev]
825 chainsize += e[1] 830 chainsize += e[revlog_constants.ENTRY_DATA_COMPRESSED_LENGTH]
826 831
827 return compsize, uncompsize, deltatype, chain, chainsize 832 return compsize, uncompsize, deltatype, chain, chainsize
828 833
829 fm = ui.formatter(b'debugdeltachain', opts) 834 fm = ui.formatter(b'debugdeltachain', opts)
830 835