mercurial/commands.py
changeset 14305 32a548776b65
parent 14304 64c22db0bc38
child 14316 d5b525697ddb
equal deleted inserted replaced
14304:64c22db0bc38 14305:32a548776b65
  1873     if v & revlog.REVLOGNGINLINEDATA:
  1873     if v & revlog.REVLOGNGINLINEDATA:
  1874         flags.append('inline')
  1874         flags.append('inline')
  1875     if v & revlog.REVLOGGENERALDELTA:
  1875     if v & revlog.REVLOGGENERALDELTA:
  1876         gdelta = True
  1876         gdelta = True
  1877         flags.append('generaldelta')
  1877         flags.append('generaldelta')
       
  1878     if not flags:
       
  1879         flags = ['(none)']
  1878 
  1880 
  1879     nummerges = 0
  1881     nummerges = 0
  1880     numchains = 0
  1882     numfull = 0
  1881     numprev = 0
  1883     numprev = 0
  1882     nump1 = 0
  1884     nump1 = 0
  1883     nump2 = 0
  1885     nump2 = 0
  1884     numother = 0
  1886     numother = 0
  1885     nump1prev = 0
  1887     nump1prev = 0
  1886     nump2prev = 0
  1888     nump2prev = 0
       
  1889     chainlengths = []
  1887 
  1890 
  1888     datasize = [None, 0, 0L]
  1891     datasize = [None, 0, 0L]
  1889     snapshotsize = [None, 0, 0L]
  1892     fullsize = [None, 0, 0L]
  1890     deltasize = [None, 0, 0L]
  1893     deltasize = [None, 0, 0L]
  1891 
  1894 
  1892     def addsize(size, l):
  1895     def addsize(size, l):
  1893         if l[0] is None or size < l[0]:
  1896         if l[0] is None or size < l[0]:
  1894             l[0] = size
  1897             l[0] = size
  1904             addsize(r.rawsize(rev), datasize)
  1907             addsize(r.rawsize(rev), datasize)
  1905         if p2 != nullrev:
  1908         if p2 != nullrev:
  1906             nummerges += 1
  1909             nummerges += 1
  1907         size = r.length(rev)
  1910         size = r.length(rev)
  1908         if delta == nullrev:
  1911         if delta == nullrev:
  1909             numchains += 1
  1912             chainlengths.append(0)
  1910             addsize(size, snapshotsize)
  1913             numfull += 1
       
  1914             addsize(size, fullsize)
  1911         else:
  1915         else:
       
  1916             chainlengths.append(chainlengths[delta] + 1)
  1912             addsize(size, deltasize)
  1917             addsize(size, deltasize)
  1913             if gdelta:
  1918             if delta == rev - 1:
  1914                 if delta == rev - 1:
  1919                 numprev += 1
  1915                     numprev += 1
  1920                 if delta == p1:
  1916                     if delta == p1:
  1921                     nump1prev += 1
  1917                         nump1prev += 1
       
  1918                     elif delta == p2:
       
  1919                         nump2prev += 1
       
  1920                 elif delta == p1:
       
  1921                     nump1 += 1
       
  1922                 elif delta == p2:
  1922                 elif delta == p2:
  1923                     nump2 += 1
  1923                     nump2prev += 1
  1924                 elif delta != nullrev:
  1924             elif delta == p1:
  1925                     numother += 1
  1925                 nump1 += 1
  1926 
  1926             elif delta == p2:
  1927     numotherprev = numprev - nump1prev - nump2prev
  1927                 nump2 += 1
       
  1928             elif delta != nullrev:
       
  1929                 numother += 1
       
  1930 
       
  1931     numdeltas = numrevs - numfull
       
  1932     numoprev = numprev - nump1prev - nump2prev
       
  1933     totalrawsize = datasize[2]
  1928     datasize[2] /= numrevs
  1934     datasize[2] /= numrevs
  1929     snapshotsize[2] /= numchains
  1935     fulltotal = fullsize[2]
  1930     deltasize[2] /= numrevs - numchains
  1936     fullsize[2] /= numfull
  1931 
  1937     deltatotal = deltasize[2]
  1932     ui.write('format    : %d\n' % format)
  1938     deltasize[2] /= numrevs - numfull
  1933     ui.write('flags     : %s\n' % ', '.join(flags))
  1939     totalsize = fulltotal + deltatotal
  1934     ui.write('revisions : %d\n' % numrevs)
  1940     avgchainlen = sum(chainlengths) / numrevs
  1935     ui.write('merges    : %d\n' % nummerges)
  1941     compratio = totalrawsize / totalsize
  1936     ui.write('chains    : %d\n' % numchains)
  1942 
       
  1943     basedfmtstr = '%%%dd\n'
       
  1944     basepcfmtstr = '%%%dd %s(%%5.2f%%%%)\n'
       
  1945 
       
  1946     def dfmtstr(max):
       
  1947         return basedfmtstr % len(str(max))
       
  1948     def pcfmtstr(max, padding=0):
       
  1949         return basepcfmtstr % (len(str(max)), ' ' * padding)
       
  1950 
       
  1951     def pcfmt(value, total):
       
  1952         return (value, 100 * float(value) / total)
       
  1953 
       
  1954     ui.write('format : %d\n' % format)
       
  1955     ui.write('flags  : %s\n' % ', '.join(flags))
       
  1956 
       
  1957     ui.write('\n')
       
  1958     fmt = pcfmtstr(totalsize)
       
  1959     fmt2 = dfmtstr(totalsize)
       
  1960     ui.write('revisions     : ' + fmt2 % numrevs)
       
  1961     ui.write('    merges    : ' + fmt % pcfmt(nummerges, numrevs))
       
  1962     ui.write('    normal    : ' + fmt % pcfmt(numrevs - nummerges, numrevs))
       
  1963     ui.write('revisions     : ' + fmt2 % numrevs)
       
  1964     ui.write('    full      : ' + fmt % pcfmt(numfull, numrevs))
       
  1965     ui.write('    deltas    : ' + fmt % pcfmt(numdeltas, numrevs))
       
  1966     ui.write('revision size : ' + fmt2 % totalsize)
       
  1967     ui.write('    full      : ' + fmt % pcfmt(fulltotal, totalsize))
       
  1968     ui.write('    deltas    : ' + fmt % pcfmt(deltatotal, totalsize))
       
  1969 
       
  1970     ui.write('\n')
       
  1971     fmt = dfmtstr(max(avgchainlen, compratio))
       
  1972     ui.write('avg chain length  : ' + fmt % avgchainlen)
       
  1973     ui.write('compression ratio : ' + fmt % compratio)
  1937 
  1974 
  1938     if format > 0:
  1975     if format > 0:
  1939         ui.write('\ndata size (min/max/avg)                : %d / %d / %d\n'
  1976         ui.write('\n')
       
  1977         ui.write('uncompressed data size (min/max/avg) : %d / %d / %d\n'
  1940                  % tuple(datasize))
  1978                  % tuple(datasize))
  1941     ui.write('compressed snapshot size (min/max/avg) : %d / %d / %d\n'
  1979     ui.write('full revision size (min/max/avg)     : %d / %d / %d\n'
  1942              % tuple(snapshotsize))
  1980              % tuple(fullsize))
  1943     ui.write('compressed delta size (min/max/avg)    : %d / %d / %d\n'
  1981     ui.write('delta size (min/max/avg)             : %d / %d / %d\n'
  1944              % tuple(deltasize))
  1982              % tuple(deltasize))
  1945 
  1983 
  1946     if gdelta:
  1984     if numdeltas > 0:
  1947         ui.write('\ndeltas against prev  : %d\n' % numprev)
  1985         ui.write('\n')
  1948         ui.write('  ..where prev = p1  : %d\n' % nump1prev)
  1986         fmt = pcfmtstr(numdeltas)
  1949         ui.write('  ..where prev = p2  : %d\n' % nump2prev)
  1987         fmt2 = pcfmtstr(numdeltas, 4)
  1950         ui.write('  ..other            : %d\n' % numotherprev)
  1988         ui.write('deltas against prev  : ' + fmt % pcfmt(numprev, numdeltas))
  1951         ui.write('deltas against p1    : %d\n' % nump1)
  1989         if numprev > 0:
  1952         ui.write('deltas against p2    : %d\n' % nump2)
  1990             ui.write('    where prev = p1  : ' + fmt2 % pcfmt(nump1prev, numprev))
  1953         ui.write('deltas against other : %d\n' % numother)
  1991             ui.write('    where prev = p2  : ' + fmt2 % pcfmt(nump2prev, numprev))
       
  1992             ui.write('    other            : ' + fmt2 % pcfmt(numoprev, numprev))
       
  1993         if gdelta:
       
  1994             ui.write('deltas against p1    : ' + fmt % pcfmt(nump1, numdeltas))
       
  1995             ui.write('deltas against p2    : ' + fmt % pcfmt(nump2, numdeltas))
       
  1996             ui.write('deltas against other : ' + fmt % pcfmt(numother, numdeltas))
  1954 
  1997 
  1955 @command('debugrevspec', [], ('REVSPEC'))
  1998 @command('debugrevspec', [], ('REVSPEC'))
  1956 def debugrevspec(ui, repo, expr):
  1999 def debugrevspec(ui, repo, expr):
  1957     '''parse and apply a revision specification'''
  2000     '''parse and apply a revision specification'''
  1958     if ui.verbose:
  2001     if ui.verbose: