diff -r ccab61d84ea7 -r 8c7d8d5e1e0f mercurial/commands.py --- a/mercurial/commands.py Thu Sep 24 10:15:37 2015 +0300 +++ b/mercurial/commands.py Thu Sep 10 16:53:07 2015 +0200 @@ -19,7 +19,7 @@ import merge as mergemod import minirst, revset, fileset import dagparser, context, simplemerge, graphmod, copies -import random +import random, operator import setdiscovery, treediscovery, dagutil, pvec, localrepo import phases, obsolete, exchange, bundle2, repair, lock as lockmod import ui as uimod @@ -2171,6 +2171,45 @@ localrevs = opts.get('local_head') doit(localrevs, remoterevs) +@command('debugextensions', formatteropts, [], norepo=True) +def debugextensions(ui, **opts): + '''show information about active extensions''' + exts = extensions.extensions(ui) + fm = ui.formatter('debugextensions', opts) + for extname, extmod in sorted(exts, key=operator.itemgetter(0)): + extsource = extmod.__file__ + exttestedwith = getattr(extmod, 'testedwith', None) + if exttestedwith is not None: + exttestedwith = exttestedwith.split() + extbuglink = getattr(extmod, 'buglink', None) + + fm.startitem() + + if ui.quiet or ui.verbose: + fm.write('name', '%s\n', extname) + else: + fm.write('name', '%s', extname) + if not exttestedwith: + fm.plain(_(' (untested!)\n')) + else: + if exttestedwith == ['internal'] or \ + util.version() in exttestedwith: + fm.plain('\n') + else: + lasttestedversion = exttestedwith[-1] + fm.plain(' (%s!)\n' % lasttestedversion) + + fm.condwrite(ui.verbose and extsource, 'source', + _(' location: %s\n'), extsource or "") + + fm.condwrite(ui.verbose and exttestedwith, 'testedwith', + _(' tested with: %s\n'), ' '.join(exttestedwith or [])) + + fm.condwrite(ui.verbose and extbuglink, 'buglink', + _(' bug reporting: %s\n'), extbuglink or "") + + fm.end() + @command('debugfileset', [('r', 'rev', '', _('apply the filespec on this revision'), _('REV'))], _('[-r REV] FILESPEC'))