mercurial/debugcommands.py
changeset 39151 07b82f55f351
parent 39148 1464183343b3
child 39153 9d6fab487c13
equal deleted inserted replaced
39150:f39efa885a6d 39151:07b82f55f351
  2093     numempty = 0
  2093     numempty = 0
  2094     numemptytext = 0
  2094     numemptytext = 0
  2095     numemptydelta = 0
  2095     numemptydelta = 0
  2096     # full file content
  2096     # full file content
  2097     numfull = 0
  2097     numfull = 0
       
  2098     # intermediate snapshot against a prior snapshot
       
  2099     numsemi = 0
  2098     # delta against previous revision
  2100     # delta against previous revision
  2099     numprev = 0
  2101     numprev = 0
  2100     # delta against first or second parent (not prev)
  2102     # delta against first or second parent (not prev)
  2101     nump1 = 0
  2103     nump1 = 0
  2102     nump2 = 0
  2104     nump2 = 0
  2113     chainspans = []
  2115     chainspans = []
  2114 
  2116 
  2115     # data about each revision
  2117     # data about each revision
  2116     datasize = [None, 0, 0]
  2118     datasize = [None, 0, 0]
  2117     fullsize = [None, 0, 0]
  2119     fullsize = [None, 0, 0]
       
  2120     semisize = [None, 0, 0]
  2118     deltasize = [None, 0, 0]
  2121     deltasize = [None, 0, 0]
  2119     chunktypecounts = {}
  2122     chunktypecounts = {}
  2120     chunktypesizes = {}
  2123     chunktypesizes = {}
  2121 
  2124 
  2122     def addsize(size, l):
  2125     def addsize(size, l):
  2152             chainbases.append(baseaddr)
  2155             chainbases.append(baseaddr)
  2153             chainspans.append((revaddr - baseaddr) + size)
  2156             chainspans.append((revaddr - baseaddr) + size)
  2154             if size == 0:
  2157             if size == 0:
  2155                 numempty += 1
  2158                 numempty += 1
  2156                 numemptydelta += 1
  2159                 numemptydelta += 1
       
  2160             elif r.issnapshot(rev):
       
  2161                 addsize(size, semisize)
       
  2162                 numsemi += 1
  2157             else:
  2163             else:
  2158                 addsize(size, deltasize)
  2164                 addsize(size, deltasize)
  2159                 if delta == rev - 1:
  2165                 if delta == rev - 1:
  2160                     numprev += 1
  2166                     numprev += 1
  2161                     if delta == p1:
  2167                     if delta == p1:
  2185 
  2191 
  2186         chunktypecounts[chunktype] += 1
  2192         chunktypecounts[chunktype] += 1
  2187         chunktypesizes[chunktype] += size
  2193         chunktypesizes[chunktype] += size
  2188 
  2194 
  2189     # Adjust size min value for empty cases
  2195     # Adjust size min value for empty cases
  2190     for size in (datasize, fullsize, deltasize):
  2196     for size in (datasize, fullsize, semisize, deltasize):
  2191         if size[0] is None:
  2197         if size[0] is None:
  2192             size[0] = 0
  2198             size[0] = 0
  2193 
  2199 
  2194     numdeltas = numrevs - numfull - numempty
  2200     numdeltas = numrevs - numfull - numempty - numsemi
  2195     numoprev = numprev - nump1prev - nump2prev
  2201     numoprev = numprev - nump1prev - nump2prev
  2196     totalrawsize = datasize[2]
  2202     totalrawsize = datasize[2]
  2197     datasize[2] /= numrevs
  2203     datasize[2] /= numrevs
  2198     fulltotal = fullsize[2]
  2204     fulltotal = fullsize[2]
  2199     fullsize[2] /= numfull
  2205     fullsize[2] /= numfull
       
  2206     semitotal = semisize[2]
       
  2207     if 0 < numsemi:
       
  2208         semisize[2] /= numsemi
  2200     deltatotal = deltasize[2]
  2209     deltatotal = deltasize[2]
  2201     if numdeltas > 0:
  2210     if numdeltas > 0:
  2202         deltasize[2] /= numdeltas
  2211         deltasize[2] /= numdeltas
  2203     totalsize = fulltotal + deltatotal
  2212     totalsize = fulltotal + semitotal + deltatotal
  2204     avgchainlen = sum(chainlengths) / numrevs
  2213     avgchainlen = sum(chainlengths) / numrevs
  2205     maxchainlen = max(chainlengths)
  2214     maxchainlen = max(chainlengths)
  2206     maxchainspan = max(chainspans)
  2215     maxchainspan = max(chainspans)
  2207     compratio = 1
  2216     compratio = 1
  2208     if totalsize:
  2217     if totalsize:
  2236     ui.write(('                   text  : ')
  2245     ui.write(('                   text  : ')
  2237              + fmt % pcfmt(numemptytext, numemptytext + numemptydelta))
  2246              + fmt % pcfmt(numemptytext, numemptytext + numemptydelta))
  2238     ui.write(('                   delta : ')
  2247     ui.write(('                   delta : ')
  2239              + fmt % pcfmt(numemptydelta, numemptytext + numemptydelta))
  2248              + fmt % pcfmt(numemptydelta, numemptytext + numemptydelta))
  2240     ui.write(('    full      : ') + fmt % pcfmt(numfull, numrevs))
  2249     ui.write(('    full      : ') + fmt % pcfmt(numfull, numrevs))
       
  2250     ui.write(('    inter     : ') + fmt % pcfmt(numsemi, numrevs))
  2241     ui.write(('    deltas    : ') + fmt % pcfmt(numdeltas, numrevs))
  2251     ui.write(('    deltas    : ') + fmt % pcfmt(numdeltas, numrevs))
  2242     ui.write(('revision size : ') + fmt2 % totalsize)
  2252     ui.write(('revision size : ') + fmt2 % totalsize)
  2243     ui.write(('    full      : ') + fmt % pcfmt(fulltotal, totalsize))
  2253     ui.write(('    full      : ') + fmt % pcfmt(fulltotal, totalsize))
       
  2254     ui.write(('    inter     : ') + fmt % pcfmt(semitotal, totalsize))
  2244     ui.write(('    deltas    : ') + fmt % pcfmt(deltatotal, totalsize))
  2255     ui.write(('    deltas    : ') + fmt % pcfmt(deltatotal, totalsize))
  2245 
  2256 
  2246     def fmtchunktype(chunktype):
  2257     def fmtchunktype(chunktype):
  2247         if chunktype == 'empty':
  2258         if chunktype == 'empty':
  2248             return '    %s     : ' % chunktype
  2259             return '    %s     : ' % chunktype