# HG changeset patch # User Pierre-Yves David # Date 1508429923 -7200 # Node ID 326e0ee1eed1c3b48af90b2c7178d832807e500c # Parent 25a6a252025502b38c6d81a713e635b8af31dcba topic: register config items There is a couple more hoops to jump through but all config items used are now registered. diff -r 25a6a2520255 -r 326e0ee1eed1 hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Thu Oct 19 18:17:47 2017 +0200 +++ b/hgext3rd/topic/__init__.py Thu Oct 19 18:18:43 2017 +0200 @@ -67,6 +67,7 @@ from __future__ import absolute_import +import functools import re import time import weakref @@ -144,6 +145,38 @@ minimumhgversion = '4.0' buglink = 'https://bz.mercurial-scm.org/' +if util.safehasattr(registrar, 'configitem'): + configtable = {} + configitem = registrar.configitem(configtable) + + configitem('experimental', 'enforce-topic', + default=False, + ) + configitem('experimental', 'topic-mode', + default=None, + ) + configitem('_internal', 'keep-topic', + default=False, + ) + + def extsetup(ui): + # register config that strickly belong to other code (thg, core, etc) + # + # To ensure all config items we used are registerd, we register them if + # nobody else did so far. + from mercurial import configitems + extraitem = functools.partial(configitems._register, ui._knownconfig) + if ('experimental' not in ui._knownconfig + or not ui._knownconfig['experimental'].get('thg.displaynames')): + extraitem('experimental', 'thg.displaynames', + default=None, + ) + if ('devel' not in ui._knownconfig + or not ui._knownconfig['devel'].get('random')): + extraitem('devel', 'randomseed', + default=None, + ) + def _contexttopic(self, force=False): if not (force or self.mutable()): return '' @@ -249,7 +282,7 @@ repo = repo.unfiltered() - if repo.ui.config('experimental', 'thg.displaynames', None) is None: + if repo.ui.config('experimental', 'thg.displaynames') is None: repo.ui.setconfig('experimental', 'thg.displaynames', 'topics', source='topic-extension') @@ -928,7 +961,7 @@ def _configtopicmode(ui): """ Parse the config to get the topicmode """ - topicmode = ui.config('experimental', 'topic-mode', default=None) + topicmode = ui.config('experimental', 'topic-mode') # Fallback to read enforce-topic if topicmode is None: