diff -r a90131b85fd8 -r a79fea6b3e77 mercurial/commands.py --- a/mercurial/commands.py Fri May 13 14:58:24 2011 -0500 +++ b/mercurial/commands.py Sat May 14 00:30:32 2011 +0200 @@ -1502,17 +1502,17 @@ ui.write(line) ui.write("\n") -@command('debugdata', [], _('FILE REV')) -def debugdata(ui, repo, file_, rev): +@command('debugdata', + [('c', 'changelog', False, _('open changelog')), + ('m', 'manifest', False, _('open manifest'))], + _('-c|-m|FILE REV')) +def debugdata(ui, repo, file_, rev = None, **opts): """dump the contents of a data file revision""" - r = None - if repo: - filelog = repo.file(file_) - if len(filelog): - r = filelog - if not r: - r = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), - file_[:-2] + ".i") + if opts.get('changelog') or opts.get('manifest'): + file_, rev = None, file_ + elif rev is None: + raise error.CommandError('debugdata', _('invalid arguments')) + r = cmdutil.openrevlog(repo, 'debugdata', file_, opts) try: ui.write(r.revision(r.lookup(rev))) except KeyError: @@ -1645,23 +1645,17 @@ raise util.Abort(_("no ignore patterns found")) @command('debugindex', - [('f', 'format', 0, _('revlog format'), _('FORMAT'))], - _('FILE')) -def debugindex(ui, repo, file_, **opts): + [('c', 'changelog', False, _('open changelog')), + ('m', 'manifest', False, _('open manifest')), + ('f', 'format', 0, _('revlog format'), _('FORMAT'))], + _('[-f FORMAT] -c|-m|FILE')) +def debugindex(ui, repo, file_ = None, **opts): """dump the contents of an index file""" - r = None - if repo: - filelog = repo.file(file_) - if len(filelog): - r = filelog - + r = cmdutil.openrevlog(repo, 'debugindex', file_, opts) format = opts.get('format', 0) if format not in (0, 1): raise util.Abort(_("unknown format %d") % format) - if not r: - r = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), file_) - generaldelta = r.version & revlog.REVLOGGENERALDELTA if generaldelta: basehdr = ' delta' @@ -1855,17 +1849,13 @@ else: ui.write(_("%s not renamed\n") % rel) -@command('debugrevlog', [], _('FILE')) -def debugrevlog(ui, repo, file_): +@command('debugrevlog', + [('c', 'changelog', False, _('open changelog')), + ('m', 'manifest', False, _('open manifest'))], + _('-c|-m|FILE')) +def debugrevlog(ui, repo, file_ = None, **opts): """show data and statistics about a revlog""" - r = None - if repo: - filelog = repo.file(file_) - if len(filelog): - r = filelog - if not r: - r = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), file_) - + r = cmdutil.openrevlog(repo, 'debugrevlog', file_, opts) v = r.version format = v & 0xFFFF flags = [] @@ -5019,4 +5009,4 @@ " debugdate debuginstall debugfsinfo debugpushkey debugwireargs" " debugknown debuggetbundle debugbundle") optionalrepo = ("identify paths serve showconfig debugancestor debugdag" - " debugdata debugindex debugindexdot") + " debugdata debugindex debugindexdot debugrevlog")