Mercurial > hg
changeset 35336:c3e4f196b6e0
debugformat: add a 'debugformat' command
The command displays basic data about all format variants registered for repo
upgrades. This gives a quick way to peek into a repository format.
The 'fm.write()' calls are very independent because more data will be added in
later changeset. Having more separate call make the later patch clearer.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Thu, 07 Dec 2017 16:19:46 +0100 |
parents | 0181f99819d2 |
children | cfb403b92f43 |
files | mercurial/debugcommands.py tests/test-completion.t tests/test-help.t tests/test-upgrade-repo.t |
diffstat | 4 files changed, 47 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/debugcommands.py Thu Dec 07 15:55:59 2017 +0100 +++ b/mercurial/debugcommands.py Thu Dec 07 16:19:46 2017 +0100 @@ -859,6 +859,38 @@ for f in ctx.getfileset(expr): ui.write("%s\n" % f) +@command('debugformat', + [] + cmdutil.formatteropts, + _('')) +def debugformat(ui, repo, **opts): + """display format information about the current repository""" + maxvariantlength = max(len(fv.name) for fv in upgrade.allformatvariant) + maxvariantlength = max(len('format-variant'), maxvariantlength) + + def makeformatname(name): + return '%s:' + (' ' * (maxvariantlength - len(name))) + + def formatvalue(value): + if value: + return 'yes' + else: + return 'no' + + fm = ui.formatter('debugformat', opts) + fm.plain('format-variant') + fm.plain(' ' * (maxvariantlength - len('format-variant'))) + fm.plain(' repo') + fm.plain('\n') + fm.startitem() + for fv in upgrade.allformatvariant: + repovalue = fv.fromrepo(repo) + + fm.write('name', makeformatname(fv.name), fv.name, + label='formatvariant.name') + fm.write('repo', ' %3s', formatvalue(repovalue), + label='formatvariant.repo') + fm.plain('\n') + @command('debugfsinfo', [], _('[PATH]'), norepo=True) def debugfsinfo(ui, path="."): """show information detected about current filesystem"""
--- a/tests/test-completion.t Thu Dec 07 15:55:59 2017 +0100 +++ b/tests/test-completion.t Thu Dec 07 16:19:46 2017 +0100 @@ -87,6 +87,7 @@ debugdiscovery debugextensions debugfileset + debugformat debugfsinfo debuggetbundle debugignore @@ -264,6 +265,7 @@ debugdiscovery: old, nonheads, rev, ssh, remotecmd, insecure debugextensions: template debugfileset: rev + debugformat: template debugfsinfo: debuggetbundle: head, common, type debugignore:
--- a/tests/test-help.t Thu Dec 07 15:55:59 2017 +0100 +++ b/tests/test-help.t Thu Dec 07 16:19:46 2017 +0100 @@ -922,6 +922,7 @@ debugextensions show information about active extensions debugfileset parse and apply a fileset specification + debugformat display format information about the current repository debugfsinfo show information detected about current filesystem debuggetbundle retrieves a bundle from a repo
--- a/tests/test-upgrade-repo.t Thu Dec 07 15:55:59 2017 +0100 +++ b/tests/test-upgrade-repo.t Thu Dec 07 16:19:46 2017 +0100 @@ -54,6 +54,12 @@ $ hg init empty $ cd empty + $ hg debugformat + format-variant repo + fncache: yes + dotencode: yes + generaldelta: yes + plain-cl-delta: yes $ hg debugupgraderepo (no feature deficiencies found in existing repository) performing an upgrade with "--run" will make the following changes: @@ -101,6 +107,12 @@ > store > EOF + $ hg debugformat + format-variant repo + fncache: no + dotencode: no + generaldelta: no + plain-cl-delta: yes $ hg debugupgraderepo repository lacks features recommended by current config options: