diff -r dd6bc2509bdc -r 828a45233036 mercurial/debugcommands.py --- a/mercurial/debugcommands.py Mon Aug 20 23:08:57 2018 +0000 +++ b/mercurial/debugcommands.py Tue Aug 21 00:01:54 2018 +0000 @@ -1108,70 +1108,41 @@ else: ui.write(_("%s is not ignored\n") % m.uipath(f)) -@command('debugindex', cmdutil.debugrevlogopts + - [('f', 'format', 0, _('revlog format'), _('FORMAT'))], - _('[-f FORMAT] -c|-m|FILE'), - optionalrepo=True) +@command('debugindex', cmdutil.debugrevlogopts + cmdutil.formatteropts, + _('-c|-m|FILE')) def debugindex(ui, repo, file_=None, **opts): - """dump the contents of an index file""" + """dump index data for a storage primitive""" opts = pycompat.byteskwargs(opts) - r = cmdutil.openrevlog(repo, 'debugindex', file_, opts) - format = opts.get('format', 0) - if format not in (0, 1): - raise error.Abort(_("unknown format %d") % format) + store = cmdutil.openstorage(repo, 'debugindex', file_, opts) if ui.debugflag: shortfn = hex else: shortfn = short - # There might not be anything in r, so have a sane default idlen = 12 - for i in r: - idlen = len(shortfn(r.node(i))) + for i in store: + idlen = len(shortfn(store.node(i))) break - if format == 0: - if ui.verbose: - ui.write((" rev offset length linkrev" - " %s %s p2\n") % ("nodeid".ljust(idlen), - "p1".ljust(idlen))) - else: - ui.write((" rev linkrev %s %s p2\n") % ( - "nodeid".ljust(idlen), "p1".ljust(idlen))) - elif format == 1: - if ui.verbose: - ui.write((" rev flag offset length size link p1" - " p2 %s\n") % "nodeid".rjust(idlen)) - else: - ui.write((" rev flag size link p1 p2 %s\n") % - "nodeid".rjust(idlen)) - - for i in r: - node = r.node(i) - if format == 0: - try: - pp = r.parents(node) - except Exception: - pp = [nullid, nullid] - if ui.verbose: - ui.write("% 6d % 9d % 7d % 7d %s %s %s\n" % ( - i, r.start(i), r.length(i), r.linkrev(i), - shortfn(node), shortfn(pp[0]), shortfn(pp[1]))) - else: - ui.write("% 6d % 7d %s %s %s\n" % ( - i, r.linkrev(i), shortfn(node), shortfn(pp[0]), - shortfn(pp[1]))) - elif format == 1: - pr = r.parentrevs(i) - if ui.verbose: - ui.write("% 6d %04x % 8d % 8d % 8d % 6d % 6d % 6d %s\n" % ( - i, r.flags(i), r.start(i), r.length(i), r.rawsize(i), - r.linkrev(i), pr[0], pr[1], shortfn(node))) - else: - ui.write("% 6d %04x % 8d % 6d % 6d % 6d %s\n" % ( - i, r.flags(i), r.rawsize(i), r.linkrev(i), pr[0], pr[1], - shortfn(node))) + fm = ui.formatter('debugindex', opts) + fm.plain(b' rev linkrev %s %s p2\n' % ( + b'nodeid'.ljust(idlen), + b'p1'.ljust(idlen))) + + for rev in store: + node = store.node(rev) + parents = store.parents(node) + + fm.startitem() + fm.write(b'rev', b'%6d ', rev) + fm.write(b'linkrev', '%7d ', store.linkrev(rev)) + fm.write(b'node', '%s ', shortfn(node)) + fm.write(b'p1', '%s ', shortfn(parents[0])) + fm.write(b'p2', '%s', shortfn(parents[1])) + fm.plain(b'\n') + + fm.end() @command('debugindexdot', cmdutil.debugrevlogopts, _('-c|-m|FILE'), optionalrepo=True) @@ -2334,6 +2305,71 @@ ui.write(('deltas against other : ') + fmt % pcfmt(numother, numdeltas)) +@command('debugrevlogindex', cmdutil.debugrevlogopts + + [('f', 'format', 0, _('revlog format'), _('FORMAT'))], + _('[-f FORMAT] -c|-m|FILE'), + optionalrepo=True) +def debugrevlogindex(ui, repo, file_=None, **opts): + """dump the contents of a revlog index""" + opts = pycompat.byteskwargs(opts) + r = cmdutil.openrevlog(repo, 'debugrevlogindex', file_, opts) + format = opts.get('format', 0) + if format not in (0, 1): + raise error.Abort(_("unknown format %d") % format) + + if ui.debugflag: + shortfn = hex + else: + shortfn = short + + # There might not be anything in r, so have a sane default + idlen = 12 + for i in r: + idlen = len(shortfn(r.node(i))) + break + + if format == 0: + if ui.verbose: + ui.write((" rev offset length linkrev" + " %s %s p2\n") % ("nodeid".ljust(idlen), + "p1".ljust(idlen))) + else: + ui.write((" rev linkrev %s %s p2\n") % ( + "nodeid".ljust(idlen), "p1".ljust(idlen))) + elif format == 1: + if ui.verbose: + ui.write((" rev flag offset length size link p1" + " p2 %s\n") % "nodeid".rjust(idlen)) + else: + ui.write((" rev flag size link p1 p2 %s\n") % + "nodeid".rjust(idlen)) + + for i in r: + node = r.node(i) + if format == 0: + try: + pp = r.parents(node) + except Exception: + pp = [nullid, nullid] + if ui.verbose: + ui.write("% 6d % 9d % 7d % 7d %s %s %s\n" % ( + i, r.start(i), r.length(i), r.linkrev(i), + shortfn(node), shortfn(pp[0]), shortfn(pp[1]))) + else: + ui.write("% 6d % 7d %s %s %s\n" % ( + i, r.linkrev(i), shortfn(node), shortfn(pp[0]), + shortfn(pp[1]))) + elif format == 1: + pr = r.parentrevs(i) + if ui.verbose: + ui.write("% 6d %04x % 8d % 8d % 8d % 6d % 6d % 6d %s\n" % ( + i, r.flags(i), r.start(i), r.length(i), r.rawsize(i), + r.linkrev(i), pr[0], pr[1], shortfn(node))) + else: + ui.write("% 6d %04x % 8d % 6d % 6d % 6d %s\n" % ( + i, r.flags(i), r.rawsize(i), r.linkrev(i), pr[0], pr[1], + shortfn(node))) + @command('debugrevspec', [('', 'optimize', None, _('print parsed tree after optimizing (DEPRECATED)')),