# HG changeset patch # User Boris Feld # Date 1504564319 -7200 # Node ID f7c9c5d8c7f4db7b844d440d7d6b8f04f22cdcdc # Parent f84358f759786a45a2ff99e1458f11a50a9b75af extensions: factor extra data loading out Some of the extra data need to be registered earlier than they currently are (eg: config items). We first factor out the logic to registered them in a small function before reusing it in the next changeset. diff -r f84358f75978 -r f7c9c5d8c7f4 mercurial/extensions.py --- a/mercurial/extensions.py Fri Jun 30 03:45:56 2017 +0200 +++ b/mercurial/extensions.py Tue Sep 05 00:31:59 2017 +0200 @@ -288,7 +288,9 @@ ('templatefunc', templater, 'loadfunction'), ('templatekeyword', templatekw, 'loadkeyword'), ] + _loadextra(ui, newindex, extraloaders) +def _loadextra(ui, newindex, extraloaders): for name in _order[newindex:]: module = _extensions[name] if not module: diff -r f84358f75978 -r f7c9c5d8c7f4 tests/test-devel-warnings.t --- a/tests/test-devel-warnings.t Fri Jun 30 03:45:56 2017 +0200 +++ b/tests/test-devel-warnings.t Tue Sep 05 00:31:59 2017 +0200 @@ -242,8 +242,8 @@ > EOF $ hg --config "extensions.buggyconfig=${TESTTMP}/buggyconfig.py" buggyconfig - devel-warn: extension 'buggyconfig' overwrite config item 'ui.interactive' at: */mercurial/extensions.py:* (loadall) (glob) - devel-warn: extension 'buggyconfig' overwrite config item 'ui.quiet' at: */mercurial/extensions.py:* (loadall) (glob) + devel-warn: extension 'buggyconfig' overwrite config item 'ui.interactive' at: */mercurial/extensions.py:* (_loadextra) (glob) + devel-warn: extension 'buggyconfig' overwrite config item 'ui.quiet' at: */mercurial/extensions.py:* (_loadextra) (glob) devel-warn: specifying a default value for a registered config item: 'ui.quiet' 'False' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob) devel-warn: specifying a default value for a registered config item: 'ui.interactive' 'None' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob) devel-warn: specifying a default value for a registered config item: 'test.some' 'foo' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob)