marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches.
REVISION SUMMARY The `set` function is doing various work related to metadata (eg: the source, later the level). However the `fixconfig` call only updating some values according to standard processing, not changing any of the related metadata. So we introduce a new method and use it there. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D9924 AFFECTED FILES mercurial/config.py mercurial/ui.py CHANGE DETAILS diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -556,7 +556,7 @@ p = util.expandpath(p) if not util.hasscheme(p) and not os.path.isabs(p): p = os.path.normpath(os.path.join(root, p)) - c.set(b"paths", n, p) + c.alter(b"paths", n, p) if section in (None, b'ui'): # update ui options diff --git a/mercurial/config.py b/mercurial/config.py --- a/mercurial/config.py +++ b/mercurial/config.py @@ -108,6 +108,14 @@ self._source = self._source.preparewrite() self._source[(section, item)] = source + def alter(self, section, key, new_value): + """alter a value, to be used by `ui.fixconfig`""" + item = self._data[section][key] + size = len(item) + new_item = (new_value,) + item[1:] + assert len(new_item) == size + self._data[section][key] = new_item + def restore(self, data): """restore data returned by self.backup""" self._source = self._source.preparewrite() To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel