comparison mercurial/commands.py @ 14326:6078a99af433

debugrevlog: add --dump flag to dump graphable per-revision statistics
author Matt Mackall <mpm@selenic.com>
date Sun, 15 May 2011 11:50:16 -0500
parents a79fea6b3e77
children 3b9a896af09c
comparison
equal deleted inserted replaced
14325:f9e91a400c16 14326:6078a99af433
1849 else: 1849 else:
1850 ui.write(_("%s not renamed\n") % rel) 1850 ui.write(_("%s not renamed\n") % rel)
1851 1851
1852 @command('debugrevlog', 1852 @command('debugrevlog',
1853 [('c', 'changelog', False, _('open changelog')), 1853 [('c', 'changelog', False, _('open changelog')),
1854 ('m', 'manifest', False, _('open manifest'))], 1854 ('m', 'manifest', False, _('open manifest')),
1855 ('d', 'dump', False, _('dump index data'))],
1855 _('-c|-m|FILE')) 1856 _('-c|-m|FILE'))
1856 def debugrevlog(ui, repo, file_ = None, **opts): 1857 def debugrevlog(ui, repo, file_ = None, **opts):
1857 """show data and statistics about a revlog""" 1858 """show data and statistics about a revlog"""
1858 r = cmdutil.openrevlog(repo, 'debugrevlog', file_, opts) 1859 r = cmdutil.openrevlog(repo, 'debugrevlog', file_, opts)
1860
1861 if opts.get("dump"):
1862 numrevs = len(r)
1863 ui.write("# rev p1rev p2rev start end deltastart base p1 p2"
1864 " rawsize totalsize compression heads\n")
1865 ts = 0
1866 heads = set()
1867 for rev in xrange(numrevs):
1868 dbase = r.base(rev)
1869 cbase = r.chainbase(rev)
1870 p1, p2 = r.parentrevs(rev)
1871 rs = r.rawsize(rev)
1872 ts = ts + rs
1873 heads -= set(r.parentrevs(rev))
1874 heads.add(rev)
1875 ui.write("%d %d %d %d %d %d %d %d %d %d %d %d %d\n" %
1876 (rev, p1, p2, r.start(rev), r.end(rev),
1877 r.start(dbase), r.start(cbase),
1878 r.start(p1), r.start(p2),
1879 rs, ts, ts / r.end(rev), len(heads)))
1880 return 0
1881
1859 v = r.version 1882 v = r.version
1860 format = v & 0xFFFF 1883 format = v & 0xFFFF
1861 flags = [] 1884 flags = []
1862 gdelta = False 1885 gdelta = False
1863 if v & revlog.REVLOGNGINLINEDATA: 1886 if v & revlog.REVLOGNGINLINEDATA: