Mercurial > public > mercurial-scm > hg
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: |