# HG changeset patch # User Yuya Nishihara <y...@tcha.org> # Date 1516797703 -32400 # Wed Jan 24 21:41:43 2018 +0900 # Node ID e2030eaec92b1ed12577cbe48cd0495d106818a9 # Parent b8d0761a85c7421071750de23228415306852d69 dispatch: remember command table per extension (PoC DO NOT PUSH)
The next patch will make it possible to look up commands shadowed by user aliases. This patch shouldn't be published because namespace[] cannot be updated by extensions.wrapcommand(). That might be okay, but wouldn't be what we want. diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -64,10 +64,12 @@ from . import ( release = lockmod.release +# commands table per extension ('' for built-in commands) +namespace = {'': {}} +# active commands table (may be updated by dispatcher and extensions) table = {} -table.update(debugcommandsmod.command._table) - -command = registrar.command(table) + +command = registrar.command() readonly = registrar.command.readonly # common command options @@ -5606,4 +5608,11 @@ def loadcmdtable(ui, name, cmdtable): if overrides: ui.warn(_("extension '%s' overrides commands: %s\n") % (name, " ".join(overrides))) + namespace[name] = cmdtable table.update(cmdtable) + +# load built-in commands +namespace[''].update(debugcommandsmod.command._table) +namespace[''].update(command._table) +table.update(debugcommandsmod.command._table) +table.update(command._table) _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel