##// END OF EJS Templates
mercurial: add debugextensions command (issue4676)...
liscju -
r26351:8c7d8d5e default
parent child Browse files
Show More
@@ -0,0 +1,83 b''
1 $ hg debugextensions
2
3 $ debugpath=`pwd`/extwithoutinfos.py
4
5 $ cat > extwithoutinfos.py <<EOF
6 > EOF
7
8 $ cat >> $HGRCPATH <<EOF
9 > [extensions]
10 > color=
11 > histedit=
12 > patchbomb=
13 > rebase=
14 > mq=
15 > ext1 = $debugpath
16 > EOF
17
18 $ hg debugextensions
19 color
20 ext1 (untested!)
21 histedit
22 mq
23 patchbomb
24 rebase
25
26 $ hg debugextensions -v
27 color
28 location: */hgext/color.pyc (glob)
29 tested with: internal
30 ext1
31 location: */extwithoutinfos.pyc (glob)
32 histedit
33 location: */hgext/histedit.pyc (glob)
34 tested with: internal
35 mq
36 location: */hgext/mq.pyc (glob)
37 tested with: internal
38 patchbomb
39 location: */hgext/patchbomb.pyc (glob)
40 tested with: internal
41 rebase
42 location: */hgext/rebase.pyc (glob)
43 tested with: internal
44
45 $ hg debugextensions -Tjson
46 [
47 {
48 "buglink": "",
49 "name": "color",
50 "source": "*/hgext/color.pyc", (glob)
51 "testedwith": "internal"
52 },
53 {
54 "buglink": "",
55 "name": "ext1",
56 "source": "*/extwithoutinfos.pyc", (glob)
57 "testedwith": ""
58 },
59 {
60 "buglink": "",
61 "name": "histedit",
62 "source": "*/hgext/histedit.pyc", (glob)
63 "testedwith": "internal"
64 },
65 {
66 "buglink": "",
67 "name": "mq",
68 "source": "*/hgext/mq.pyc", (glob)
69 "testedwith": "internal"
70 },
71 {
72 "buglink": "",
73 "name": "patchbomb",
74 "source": "*/hgext/patchbomb.pyc", (glob)
75 "testedwith": "internal"
76 },
77 {
78 "buglink": "",
79 "name": "rebase",
80 "source": "*/hgext/rebase.pyc", (glob)
81 "testedwith": "internal"
82 }
83 ]
@@ -19,7 +19,7 b' from hgweb import server as hgweb_server'
19 import merge as mergemod
19 import merge as mergemod
20 import minirst, revset, fileset
20 import minirst, revset, fileset
21 import dagparser, context, simplemerge, graphmod, copies
21 import dagparser, context, simplemerge, graphmod, copies
22 import random
22 import random, operator
23 import setdiscovery, treediscovery, dagutil, pvec, localrepo
23 import setdiscovery, treediscovery, dagutil, pvec, localrepo
24 import phases, obsolete, exchange, bundle2, repair, lock as lockmod
24 import phases, obsolete, exchange, bundle2, repair, lock as lockmod
25 import ui as uimod
25 import ui as uimod
@@ -2171,6 +2171,45 b' def debugdiscovery(ui, repo, remoteurl="'
2171 localrevs = opts.get('local_head')
2171 localrevs = opts.get('local_head')
2172 doit(localrevs, remoterevs)
2172 doit(localrevs, remoterevs)
2173
2173
2174 @command('debugextensions', formatteropts, [], norepo=True)
2175 def debugextensions(ui, **opts):
2176 '''show information about active extensions'''
2177 exts = extensions.extensions(ui)
2178 fm = ui.formatter('debugextensions', opts)
2179 for extname, extmod in sorted(exts, key=operator.itemgetter(0)):
2180 extsource = extmod.__file__
2181 exttestedwith = getattr(extmod, 'testedwith', None)
2182 if exttestedwith is not None:
2183 exttestedwith = exttestedwith.split()
2184 extbuglink = getattr(extmod, 'buglink', None)
2185
2186 fm.startitem()
2187
2188 if ui.quiet or ui.verbose:
2189 fm.write('name', '%s\n', extname)
2190 else:
2191 fm.write('name', '%s', extname)
2192 if not exttestedwith:
2193 fm.plain(_(' (untested!)\n'))
2194 else:
2195 if exttestedwith == ['internal'] or \
2196 util.version() in exttestedwith:
2197 fm.plain('\n')
2198 else:
2199 lasttestedversion = exttestedwith[-1]
2200 fm.plain(' (%s!)\n' % lasttestedversion)
2201
2202 fm.condwrite(ui.verbose and extsource, 'source',
2203 _(' location: %s\n'), extsource or "")
2204
2205 fm.condwrite(ui.verbose and exttestedwith, 'testedwith',
2206 _(' tested with: %s\n'), ' '.join(exttestedwith or []))
2207
2208 fm.condwrite(ui.verbose and extbuglink, 'buglink',
2209 _(' bug reporting: %s\n'), extbuglink or "")
2210
2211 fm.end()
2212
2174 @command('debugfileset',
2213 @command('debugfileset',
2175 [('r', 'rev', '', _('apply the filespec on this revision'), _('REV'))],
2214 [('r', 'rev', '', _('apply the filespec on this revision'), _('REV'))],
2176 _('[-r REV] FILESPEC'))
2215 _('[-r REV] FILESPEC'))
@@ -80,6 +80,7 b' Show debug commands if there are no othe'
80 debugdate
80 debugdate
81 debugdirstate
81 debugdirstate
82 debugdiscovery
82 debugdiscovery
83 debugextensions
83 debugfileset
84 debugfileset
84 debugfsinfo
85 debugfsinfo
85 debuggetbundle
86 debuggetbundle
@@ -239,6 +240,7 b' Show all commands + options'
239 debugdate: extended
240 debugdate: extended
240 debugdirstate: nodates, datesort
241 debugdirstate: nodates, datesort
241 debugdiscovery: old, nonheads, ssh, remotecmd, insecure
242 debugdiscovery: old, nonheads, ssh, remotecmd, insecure
243 debugextensions: template
242 debugfileset: rev
244 debugfileset: rev
243 debugfsinfo:
245 debugfsinfo:
244 debuggetbundle: head, common, type
246 debuggetbundle: head, common, type
@@ -287,17 +287,23 b' hide outer repo'
287 $ echo "debugextension = $debugpath" >> $HGRCPATH
287 $ echo "debugextension = $debugpath" >> $HGRCPATH
288
288
289 $ hg help debugextension
289 $ hg help debugextension
290 debugextension extension - only debugcommands
290 hg debugextensions
291
292 show information about active extensions
291
293
292 no commands defined
294 options:
295
296 (some details hidden, use --verbose to show complete help)
293
297
294
298
295 $ hg --verbose help debugextension
299 $ hg --verbose help debugextension
296 debugextension extension - only debugcommands
300 hg debugextensions
301
302 show information about active extensions
297
303
298 list of commands:
304 options:
299
305
300 foo yet another foo command
306 -T --template TEMPLATE display with template (EXPERIMENTAL)
301
307
302 global options ([+] can be repeated):
308 global options ([+] can be repeated):
303
309
@@ -326,12 +332,13 b' hide outer repo'
326
332
327
333
328 $ hg --debug help debugextension
334 $ hg --debug help debugextension
329 debugextension extension - only debugcommands
335 hg debugextensions
336
337 show information about active extensions
330
338
331 list of commands:
339 options:
332
340
333 debugfoobar yet another debug command
341 -T --template TEMPLATE display with template (EXPERIMENTAL)
334 foo yet another foo command
335
342
336 global options ([+] can be repeated):
343 global options ([+] can be repeated):
337
344
@@ -545,20 +552,7 b' Test help topic with same name as extens'
545
552
546 Issue811: Problem loading extensions twice (by site and by user)
553 Issue811: Problem loading extensions twice (by site and by user)
547
554
548 $ debugpath=`pwd`/debugissue811.py
549 $ cat > debugissue811.py <<EOF
550 > '''show all loaded extensions
551 > '''
552 > from mercurial import cmdutil, commands, extensions
553 > cmdtable = {}
554 > command = cmdutil.command(cmdtable)
555 > @command('debugextensions', [], 'hg debugextensions', norepo=True)
556 > def debugextensions(ui):
557 > "yet another debug command"
558 > ui.write("%s\n" % '\n'.join([x for x, y in extensions.extensions()]))
559 > EOF
560 $ cat <<EOF >> $HGRCPATH
555 $ cat <<EOF >> $HGRCPATH
561 > debugissue811 = $debugpath
562 > mq =
556 > mq =
563 > strip =
557 > strip =
564 > hgext.mq =
558 > hgext.mq =
@@ -569,9 +563,8 b' Show extensions:'
569 (note that mq force load strip, also checking it's not loaded twice)
563 (note that mq force load strip, also checking it's not loaded twice)
570
564
571 $ hg debugextensions
565 $ hg debugextensions
572 debugissue811
566 mq
573 strip
567 strip
574 mq
575
568
576 For extensions, which name matches one of its commands, help
569 For extensions, which name matches one of its commands, help
577 message should ask '-v -e' to get list of built-in aliases
570 message should ask '-v -e' to get list of built-in aliases
@@ -775,6 +775,8 b' Test list of internal help commands'
775 show the contents of the current dirstate
775 show the contents of the current dirstate
776 debugdiscovery
776 debugdiscovery
777 runs the changeset discovery protocol in isolation
777 runs the changeset discovery protocol in isolation
778 debugextensions
779 show information about active extensions
778 debugfileset parse and apply a fileset specification
780 debugfileset parse and apply a fileset specification
779 debugfsinfo show information detected about current filesystem
781 debugfsinfo show information detected about current filesystem
780 debuggetbundle
782 debuggetbundle
General Comments 0
You need to be logged in to leave comments. Login now