Mercurial > public > mercurial-scm > hg
diff mercurial/extensions.py @ 48362:7e6488aa1261
extensions: add a default "*" suboptions prefix
This is similar to what we do in other section (e.g. `paths`) and allow to
change the behavior for all extensions.
Sub options on individual extensions overwrite the default settings.
Differential Revision: https://phab.mercurial-scm.org/D11823
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 26 Nov 2021 17:22:14 +0100 |
parents | 0d0ce2529540 |
children | 6000f5b25c9b |
line wrap: on
line diff
--- a/mercurial/extensions.py Fri Nov 26 17:17:49 2021 +0100 +++ b/mercurial/extensions.py Fri Nov 26 17:22:14 2021 +0100 @@ -291,6 +291,8 @@ ) ui.log(b'extension', b'- processing %d entries\n', len(result)) with util.timedcm('load all extensions') as stats: + default_sub_options = ui.configsuboptions(b"extensions", b"*")[1] + for (name, path) in result: if path: if path[0:1] == b'!': @@ -315,8 +317,10 @@ error_msg = _(b'failed to import extension "%s": %s') error_msg %= (name, msg) + options = default_sub_options.copy() ext_options = ui.configsuboptions(b"extensions", name)[1] - if stringutil.parsebool(ext_options.get(b"required", b'no')): + options.update(ext_options) + if stringutil.parsebool(options.get(b"required", b'no')): hint = None if isinstance(inst, error.Hint) and inst.hint: hint = inst.hint