Mercurial > public > mercurial-scm > hg-stable
diff mercurial/dispatch.py @ 52454:0b791c90280a
repo-config: move rc component of repository inside `rcutil`
This gather logic about where to find config file in the same location.
This also reduce the amount of logic we do in dispatch.py which is a win in
itself.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 22 Oct 2024 23:42:15 +0200 |
parents | 8a52fd131d3b |
children | e3b45916c375 |
line wrap: on
line diff
--- a/mercurial/dispatch.py Wed Oct 23 00:00:17 2024 +0200 +++ b/mercurial/dispatch.py Tue Oct 22 23:42:15 2024 +0200 @@ -34,15 +34,12 @@ help, hg, hook, - localrepo, profiling, pycompat, registrar, - requirements as requirementsmod, scmutil, ui as uimod, util, - vfs, ) from .configuration import rcutil @@ -929,29 +926,6 @@ return ret -def _readsharedsourceconfig(ui, path): - """if the current repository is shared one, this tries to read - .hg/hgrc of shared source if we are in share-safe mode - - Config read is loaded into the ui object passed - - This should be called before reading .hg/hgrc or the main repo - as that overrides config set in shared source""" - try: - with open(os.path.join(path, b".hg", b"requires"), "rb") as fp: - requirements = set(fp.read().splitlines()) - if not ( - requirementsmod.SHARESAFE_REQUIREMENT in requirements - and requirementsmod.SHARED_REQUIREMENT in requirements - ): - return - hgvfs = vfs.vfs(os.path.join(path, b".hg")) - sharedvfs = localrepo._getsharedvfs(hgvfs, requirements) - ui.readconfig(sharedvfs.join(b"hgrc"), root=path) - except IOError: - pass - - def _getlocal(ui, rpath, wd=None): """Return (path, local ui object) for the given target path. @@ -980,9 +954,8 @@ else: lui = ui.copy() if rcutil.use_repo_hgrc(): - _readsharedsourceconfig(lui, path) - lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) - lui.readconfig(os.path.join(path, b".hg", b"hgrc-not-shared"), path) + for rc_path in rcutil.repo_components(path): + lui.readconfig(rc_path, root=path) if rpath: # the specified path, might be defined in the [paths] section of the @@ -992,9 +965,8 @@ path = path_obj.rawloc lui = ui.copy() if rcutil.use_repo_hgrc(): - _readsharedsourceconfig(lui, path) - lui.readconfig(os.path.join(path, b".hg", b"hgrc"), path) - lui.readconfig(os.path.join(path, b".hg", b"hgrc-not-shared"), path) + for rc_path in rcutil.repo_components(path): + lui.readconfig(rc_path, root=path) if oldcwd: os.chdir(oldcwd)