mercurial/debugcommands.py
changeset 35678 43154a76f392
parent 35585 35fb3367f72d
child 35728 22a877215ea1
equal deleted inserted replaced
35677:cf2e2a7399bc 35678:43154a76f392
   598 
   598 
   599     :``readsize``:     total size of data read from the disk for a revision
   599     :``readsize``:     total size of data read from the disk for a revision
   600                        (sum of the sizes of all the blocks)
   600                        (sum of the sizes of all the blocks)
   601     :``largestblock``: size of the largest block of data read from the disk
   601     :``largestblock``: size of the largest block of data read from the disk
   602     :``readdensity``:  density of useful bytes in the data read from the disk
   602     :``readdensity``:  density of useful bytes in the data read from the disk
       
   603     :``srchunks``:  in how many data hunks the whole revision would be read
   603 
   604 
   604     The sparse read can be enabled with experimental.sparse-read = True
   605     The sparse read can be enabled with experimental.sparse-read = True
   605     """
   606     """
   606     opts = pycompat.byteskwargs(opts)
   607     opts = pycompat.byteskwargs(opts)
   607     r = cmdutil.openrevlog(repo, 'debugdeltachain', file_, opts)
   608     r = cmdutil.openrevlog(repo, 'debugdeltachain', file_, opts)
   643 
   644 
   644     fm.plain('    rev  chain# chainlen     prev   delta       '
   645     fm.plain('    rev  chain# chainlen     prev   delta       '
   645              'size    rawsize  chainsize     ratio   lindist extradist '
   646              'size    rawsize  chainsize     ratio   lindist extradist '
   646              'extraratio')
   647              'extraratio')
   647     if withsparseread:
   648     if withsparseread:
   648         fm.plain('   readsize largestblk rddensity')
   649         fm.plain('   readsize largestblk rddensity srchunks')
   649     fm.plain('\n')
   650     fm.plain('\n')
   650 
   651 
   651     chainbases = {}
   652     chainbases = {}
   652     for rev in r:
   653     for rev in r:
   653         comp, uncomp, deltatype, chain, chainsize = revinfo(rev)
   654         comp, uncomp, deltatype, chain, chainsize = revinfo(rev)
   691                 if largestblock < blksize:
   692                 if largestblock < blksize:
   692                     largestblock = blksize
   693                     largestblock = blksize
   693 
   694 
   694             readdensity = float(chainsize) / float(readsize)
   695             readdensity = float(chainsize) / float(readsize)
   695 
   696 
   696             fm.write('readsize largestblock readdensity',
   697             if util.safehasattr(revlog, '_slicechunk'):
   697                      ' %10d %10d %9.5f',
   698                 revchunks = tuple(revlog._slicechunk(r, chain))
   698                      readsize, largestblock, readdensity,
   699             else:
       
   700                 revchunks = (chain,)
       
   701             srchunks = len(revchunks)
       
   702 
       
   703             fm.write('readsize largestblock readdensity srchunks',
       
   704                      ' %10d %10d %9.5f %8d',
       
   705                      readsize, largestblock, readdensity, srchunks,
   699                      readsize=readsize, largestblock=largestblock,
   706                      readsize=readsize, largestblock=largestblock,
   700                      readdensity=readdensity)
   707                      readdensity=readdensity, srchunks=srchunks)
   701 
   708 
   702         fm.plain('\n')
   709         fm.plain('\n')
   703 
   710 
   704     fm.end()
   711     fm.end()
   705 
   712