Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 14305:32a548776b65
debugrevlog: many improvements
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Thu, 12 May 2011 22:37:52 +0200 |
parents | 64c22db0bc38 |
children | d5b525697ddb |
comparison
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: |