diff -r 919c440868d9 -r 15ca4bfecfe3 mercurial/commands.py --- a/mercurial/commands.py Fri Oct 29 00:57:34 2010 -0500 +++ b/mercurial/commands.py Sat Oct 30 02:47:35 2010 -0500 @@ -1260,26 +1260,43 @@ m = util.matchdate(range) ui.write("match: %s\n" % m(d[0])) -def debugindex(ui, repo, file_): +def debugindex(ui, repo, file_, **opts): """dump the contents of an index file""" r = None if repo: filelog = repo.file(file_) if len(filelog): r = filelog + + format = opts.get('format', 0) + if format not in (0, 1): + raise util.abort("unknown format %d" % format) + if not r: r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_) - ui.write(" rev offset length base linkrev" - " nodeid p1 p2\n") + + if format == 0: + ui.write(" rev offset length base linkrev" + " nodeid p1 p2\n") + elif format == 1: + ui.write(" rev flag offset length" + " size base link p1 p2 nodeid\n") + for i in r: node = r.node(i) - try: - pp = r.parents(node) - except: - pp = [nullid, nullid] - ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % ( - i, r.start(i), r.length(i), r.base(i), r.linkrev(i), - short(node), short(pp[0]), short(pp[1]))) + if format == 0: + try: + pp = r.parents(node) + except: + pp = [nullid, nullid] + ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % ( + i, r.start(i), r.length(i), r.base(i), r.linkrev(i), + short(node), short(pp[0]), short(pp[1]))) + elif format == 1: + pr = r.parentrevs(i) + ui.write("% 6d %04x % 8d % 8d % 8d % 6d % 6d % 6d % 6d %s\n" % ( + i, r.flags(i), r.start(i), r.length(i), r.rawsize(i), + r.base(i), r.linkrev(i), pr[0], pr[1], short(node))) def debugindexdot(ui, repo, file_): """dump an index DAG as a graphviz dot file""" @@ -4139,7 +4156,9 @@ _('[-e] DATE [RANGE]')), "debugdata": (debugdata, [], _('FILE REV')), "debugfsinfo": (debugfsinfo, [], _('[PATH]')), - "debugindex": (debugindex, [], _('FILE')), + "debugindex": (debugindex, + [('f', 'format', 0, _('revlog format'), _('FORMAT'))], + _('FILE')), "debugindexdot": (debugindexdot, [], _('FILE')), "debuginstall": (debuginstall, [], ''), "debugpushkey": (debugpushkey, [], _('REPO NAMESPACE [KEY OLD NEW]')),