[PATCH] mercurial: add debugextensions command (issue4676)
Piotr Listkiewicz
piotr.listkiewicz at gmail.com
Sun Sep 13 04:58:11 CDT 2015
> $ hg debugextensions -q
> purge
> dbsh
> extdiff
> $ hg debugextensions
> purge
> dbsh (untested!)
> hggit (3.4!)
Could you describe more precisely the difference between version with quiet
parameter and without parameters? In new patch i sent debugextensions
without parameters print only names of extension modules, with verbose
prints other information as well(source,tested,bug).
> Sorting probably makes sense here. It might also make sense to use the
> generic templating interface:
I used generic template interface in new sent patch without sorting. Would
sth like
exts_infos.sort(sort=cmp_ext_name) be good enough?
2015-09-13 1:04 GMT+02:00 Matt Mackall <mpm at selenic.com>:
> On Thu, 2015-09-10 at 20:25 +0200, liscju wrote:
> > # HG changeset patch
> > # User liscju <piotr.listkiewicz at gmail.com>
> > # Date 1441896787 -7200
> > # Thu Sep 10 16:53:07 2015 +0200
> > # Node ID a1d762cfc0428911f52b109d1c335a37ea24ff59
> > # Parent ea489d94e1dc1fc3dc1dcbef1c86c18c49605ed1
> > mercurial: add debugextensions command (issue4676)
> >
> > Add debugextensions command to help users debug their extension
> > problems. If there are no extensions command prints nothing,
> > otherwise it prints the table with: extension name, import source,
> > testedwith and buglink informations. If information about testedwith
> > or buglink in given module is missing it prints "-" in appropriate
> > column.
>
> Interesting choice to use minirst tables here. Unfortunately, I don't
> think it's going to work out well for a lot of people because some of
> the columns can be quite wide:
>
> $ hg debugextensions
> ============== ===========================================
> ============================= ===========================================
> Extension name Import source Testedwith
> Buglink
> ============== ===========================================
> ============================= ===========================================
> purge /home/mpm/hg/hgext/purge.pyc internal
> -
> dbsh /home/mpm/hg/contrib/debugshell.pyc -
> -
> extdiff /home/mpm/hg/hgext/extdiff.pyc internal
> -
> gpg /home/mpm/hg/hgext/gpg.pyc internal
> -
> hggit /home/mpm/src/hg-git/hggit/__init__.pyc 2.8.2 3.0.1 3.1
> 3.2.2 3.3 3.4 https://bitbucket.org/durin42/hg-git/issues
>
>
> That's way over 80 columns. I'm sure there are a lot of people with
> 100-character paths to their extensions as well. It's also not a very
> good match to our usual output style.
>
> Here's what I'd suggest:
>
> $ hg debugextensions -q
> purge
> dbsh
> extdiff
> ...
>
> $ hg debugextensions
> purge
> dbsh (untested!)
> hggit (3.4!)
> ...
>
> $ hg debugextensions -v
> purge
> location: ...
> tested with: internal
> bug reporting: http://bz.selenic.com
> hggit
> ...
>
> Sorting probably makes sense here. It might also make sense to use the
> generic templating interface:
>
> https://mercurial.selenic.com/wiki/GenericTemplatingPlan
>
>
> > diff -r ea489d94e1dc -r a1d762cfc042 mercurial/commands.py
> > --- a/mercurial/commands.py Sat Aug 22 17:08:37 2015 -0700
> > +++ b/mercurial/commands.py Thu Sep 10 16:53:07 2015 +0200
> > @@ -2184,6 +2184,28 @@
> > for f in ctx.getfileset(expr):
> > ui.write("%s\n" % f)
> >
> > + at command('debugextensions', [], norepo=True)
> > +def debugextensions(ui):
> > + exts = extensions.extensions(ui)
> > + header = ["Extension name", "Import source", "Testedwith",
> "Buglink"]
> > + rows = [header]
> > + for extname, extmod in exts:
> > + extsource = extmod.__file__
> > + try:
> > + exttestedwith = extmod.testedwith
> > + except AttributeError:
> > + exttestedwith = "-"
> > + try:
> > + extbuglink = extmod.buglink
> > + except AttributeError:
> > + extbuglink = "-"
> > + rows.append([extname, extsource, exttestedwith, extbuglink])
> > +
> > + if len(rows) > 1:
> > + rst = minirst.maketable(rows, header=True)
> > + table = ''.join(rst)
> > + ui.write(table)
> > +
> > @command('debugfsinfo', [], _('[PATH]'), norepo=True)
> > def debugfsinfo(ui, path="."):
> > """show information detected about current filesystem"""
> > diff -r ea489d94e1dc -r a1d762cfc042 tests/test-debugextensions.t
> > --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> > +++ b/tests/test-debugextensions.t Thu Sep 10 16:53:07 2015 +0200
> > @@ -0,0 +1,21 @@
> > + $ hg debugextensions
> > +
> > + $ cat >> $HGRCPATH <<EOF
> > + > [extensions]
> > + > color=
> > + > histedit=
> > + > patchbomb=
> > + > rebase=
> > + > mq=
> > + > EOF
> > +
> > + $ hg debugextensions
> > + ==============*=====================*==========*======= (glob)
> > + Extension name*Import source *Testedwith*Buglink (glob)
> > + ==============*=====================*==========*======= (glob)
> > + color */hgext/color.pyc *internal *- (glob)
> > + histedit */hgext/histedit.pyc *internal *- (glob)
> > + patchbomb */hgext/patchbomb.pyc*internal *- (glob)
> > + rebase */hgext/rebase.pyc *internal *- (glob)
> > + mq */hgext/mq.pyc *internal *- (glob)
> > + ==============*=====================*==========*======= (glob)
> > _______________________________________________
> > Mercurial-devel mailing list
> > Mercurial-devel at selenic.com
> > https://selenic.com/mailman/listinfo/mercurial-devel
>
> --
> Mathematics is the supreme nostalgia of our time.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20150913/78b03f8b/attachment.html>
More information about the Mercurial-devel
mailing list