dispatch: provide help for disabled extensions and commands
Before a command is declared unknown, each extension in hgext is searched,
starting with hgext.<cmdname>. If there's a matching command, a help message
suggests the appropriate extension and how to enable it.
Every extension could potentially be imported, but for cases like rebase,
relink, etc. only one extension is imported.
For the case of "hg help disabledext", if the extension is in hgext, the
extension description is read and a similar help suggestion is printed.
No extension import occurs.
uisetup called
reposetup called for a
ui == repo.ui
Foo
uisetup called
reposetup called for a
ui == repo.ui
reposetup called for b
ui == repo.ui
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
uisetup called
Bar
% module/__init__.py-style
uisetup called
reposetup called for a
ui == repo.ui
Foo
1) foo imported
1) bar imported
2) foo uisetup
2) bar uisetup
3) foo extsetup
3) bar extsetup
4) foo reposetup
4) bar reposetup
% hgweb.cgi
1) foo imported
1) bar imported
2) foo uisetup
2) bar uisetup
3) foo extsetup
3) bar extsetup
4) foo reposetup
4) bar reposetup
4) foo reposetup
4) bar reposetup
empty extension - empty cmdtable
no commands defined
% hg help
debugextension extension - only debugcommands
no commands defined
% hg help --verbose
debugextension extension - only debugcommands
list of commands:
foo:
yet another foo command
global options:
-R --repository repository root directory or name of overlay bundle file
--cwd change working directory
-y --noninteractive do not prompt, assume 'yes' for any required answers
-q --quiet suppress output
-v --verbose enable additional output
--config set/override config option
--debug enable debugging output
--debugger start debugger
--encoding set the charset encoding (default: ascii)
--encodingmode set the charset encoding mode (default: strict)
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
% hg help --debug
debugextension extension - only debugcommands
list of commands:
debugfoobar:
yet another debug command
foo:
yet another foo command
global options:
-R --repository repository root directory or name of overlay bundle file
--cwd change working directory
-y --noninteractive do not prompt, assume 'yes' for any required answers
-q --quiet suppress output
-v --verbose enable additional output
--config set/override config option
--debug enable debugging output
--debugger start debugger
--encoding set the charset encoding (default: ascii)
--encodingmode set the charset encoding mode (default: strict)
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
% issue811
% show extensions
debugissue811
mq
% disabled extension commands
'email' is provided by the following extension:
patchbomb command to send changesets as (a series of) patch emails
use "hg help extensions" for information on enabling extensions
hg: unknown command 'qdel'
'qdelete' is provided by the following extension:
mq manage a stack of patches
use "hg help extensions" for information on enabling extensions
hg: unknown command 'churn'
'churn' is provided by the following extension:
churn command to display statistics about repository history
use "hg help extensions" for information on enabling extensions
% disabled extensions
churn extension - command to display statistics about repository history
use "hg help extensions" for information on enabling extensions
patchbomb extension - command to send changesets as (a series of) patch emails
use "hg help extensions" for information on enabling extensions
% broken disabled extension and command
broken extension - (no help text available)
use "hg help extensions" for information on enabling extensions
hg: unknown command 'foo'