##// END OF EJS Templates
add debugrevlog command...
Sune Foldager -
r14304:64c22db0 default
parent child Browse files
Show More
@@ -1855,6 +1855,103 b' def debugrename(ui, repo, file1, *pats, '
1855 else:
1855 else:
1856 ui.write(_("%s not renamed\n") % rel)
1856 ui.write(_("%s not renamed\n") % rel)
1857
1857
1858 @command('debugrevlog', [], _('FILE'))
1859 def debugrevlog(ui, repo, file_):
1860 """show data and statistics about a revlog"""
1861 r = None
1862 if repo:
1863 filelog = repo.file(file_)
1864 if len(filelog):
1865 r = filelog
1866 if not r:
1867 r = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), file_)
1868
1869 v = r.version
1870 format = v & 0xFFFF
1871 flags = []
1872 gdelta = False
1873 if v & revlog.REVLOGNGINLINEDATA:
1874 flags.append('inline')
1875 if v & revlog.REVLOGGENERALDELTA:
1876 gdelta = True
1877 flags.append('generaldelta')
1878
1879 nummerges = 0
1880 numchains = 0
1881 numprev = 0
1882 nump1 = 0
1883 nump2 = 0
1884 numother = 0
1885 nump1prev = 0
1886 nump2prev = 0
1887
1888 datasize = [None, 0, 0L]
1889 snapshotsize = [None, 0, 0L]
1890 deltasize = [None, 0, 0L]
1891
1892 def addsize(size, l):
1893 if l[0] is None or size < l[0]:
1894 l[0] = size
1895 if size > l[1]:
1896 l[1] = size
1897 l[2] += size
1898
1899 numrevs = len(r)
1900 for rev in xrange(numrevs):
1901 p1, p2 = r.parentrevs(rev)
1902 delta = r.deltaparent(rev)
1903 if format > 0:
1904 addsize(r.rawsize(rev), datasize)
1905 if p2 != nullrev:
1906 nummerges += 1
1907 size = r.length(rev)
1908 if delta == nullrev:
1909 numchains += 1
1910 addsize(size, snapshotsize)
1911 else:
1912 addsize(size, deltasize)
1913 if gdelta:
1914 if delta == rev - 1:
1915 numprev += 1
1916 if delta == p1:
1917 nump1prev += 1
1918 elif delta == p2:
1919 nump2prev += 1
1920 elif delta == p1:
1921 nump1 += 1
1922 elif delta == p2:
1923 nump2 += 1
1924 elif delta != nullrev:
1925 numother += 1
1926
1927 numotherprev = numprev - nump1prev - nump2prev
1928 datasize[2] /= numrevs
1929 snapshotsize[2] /= numchains
1930 deltasize[2] /= numrevs - numchains
1931
1932 ui.write('format : %d\n' % format)
1933 ui.write('flags : %s\n' % ', '.join(flags))
1934 ui.write('revisions : %d\n' % numrevs)
1935 ui.write('merges : %d\n' % nummerges)
1936 ui.write('chains : %d\n' % numchains)
1937
1938 if format > 0:
1939 ui.write('\ndata size (min/max/avg) : %d / %d / %d\n'
1940 % tuple(datasize))
1941 ui.write('compressed snapshot size (min/max/avg) : %d / %d / %d\n'
1942 % tuple(snapshotsize))
1943 ui.write('compressed delta size (min/max/avg) : %d / %d / %d\n'
1944 % tuple(deltasize))
1945
1946 if gdelta:
1947 ui.write('\ndeltas against prev : %d\n' % numprev)
1948 ui.write(' ..where prev = p1 : %d\n' % nump1prev)
1949 ui.write(' ..where prev = p2 : %d\n' % nump2prev)
1950 ui.write(' ..other : %d\n' % numotherprev)
1951 ui.write('deltas against p1 : %d\n' % nump1)
1952 ui.write('deltas against p2 : %d\n' % nump2)
1953 ui.write('deltas against other : %d\n' % numother)
1954
1858 @command('debugrevspec', [], ('REVSPEC'))
1955 @command('debugrevspec', [], ('REVSPEC'))
1859 def debugrevspec(ui, repo, expr):
1956 def debugrevspec(ui, repo, expr):
1860 '''parse and apply a revision specification'''
1957 '''parse and apply a revision specification'''
@@ -86,6 +86,7 b' Show debug commands if there are no othe'
86 debugpushkey
86 debugpushkey
87 debugrebuildstate
87 debugrebuildstate
88 debugrename
88 debugrename
89 debugrevlog
89 debugrevspec
90 debugrevspec
90 debugsetparents
91 debugsetparents
91 debugstate
92 debugstate
@@ -231,6 +232,7 b' Show all commands + options'
231 debugpushkey:
232 debugpushkey:
232 debugrebuildstate: rev
233 debugrebuildstate: rev
233 debugrename: rev
234 debugrename: rev
235 debugrevlog:
234 debugrevspec:
236 debugrevspec:
235 debugsetparents:
237 debugsetparents:
236 debugstate: nodates, datesort
238 debugstate: nodates, datesort
General Comments 0
You need to be logged in to leave comments. Login now