tests/test-extension.out
author Martin Geisler <mg@lazybytes.net>
Sat, 29 Aug 2009 00:29:16 +0200
changeset 9410 1c83938b6a8e
parent 9295 b0f447a259ab
child 9481 829f5c2a2c2e
permissions -rw-r--r--
extensions: load and configure extensions in well-defined phases Extensions are now loaded with a call-graph like this: dispatch._dispatch extensions.loadall extensions.load # add foo module to extensions._extensions extensions.load # add bar module to extensions._extensions foo.uisetup(ui) bar.uisetup(ui) foo.extsetup() bar.extsetup() commands.table.update(foo.cmdtable) commands.table.update(bar.cmdtable) hg.repository foo.reposetup(ui, repo) bar.reposetup(ui, repo) The uisetup calls could easily be moved out to dispatch._dispatch, but have been kept in extensions.loadall since at least TortoiseHg calls extensions.loadall and expects it to call uisetup. The extensions.load function called uisetup. It now has an unused ui argument which has been kept for backwards compatibility.

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 working directory
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
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

enabled extensions:

 debugextension   only debugcommands

global options:
 -R --repository      repository root directory or symbolic path name
    --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       print 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

enabled extensions:

 debugextension   only debugcommands

global options:
 -R --repository      repository root directory or symbolic path name
    --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       print 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