Mercurial > hg
changeset 26625:adae8928fe09
windows: read all global config files, not just the first (issue4491) (BC)
On windows, hgrc.d/*.rc would not be read if mercurial.ini was found. That was
far from obvious from the documentation and different from the behavior on
posix systems.
As a consequence of this, TortoiseHg cacert configuration placed in hgrc.d
would not be read if an old global mercurial.ini still existed.
"hg config -g" could also crash when no global configuration files could be
found.
Instead, make windows behave like posix and read all global configuration
files.
The documentation was in a way right that individual config settings in the
global Mercurial.ini would override settings from for example .hgrc.d\*.rc, but
only because the .d files not would be read at all if a Mercurial.ini was
found. The ordering in the documentation is thus changed to match the code.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Mon, 12 Oct 2015 20:13:12 +0200 |
parents | bcace0fbb4c8 |
children | dca161728dc9 |
files | mercurial/help/config.txt mercurial/scmwindows.py |
diffstat | 2 files changed, 3 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/help/config.txt Fri Oct 09 14:48:59 2015 -0700 +++ b/mercurial/help/config.txt Mon Oct 12 20:13:12 2015 +0200 @@ -62,9 +62,9 @@ - ``%USERPROFILE%\Mercurial.ini`` (per-user) - ``%HOME%\.hgrc`` (per-user) - ``%HOME%\Mercurial.ini`` (per-user) - - ``<install-dir>\Mercurial.ini`` (per-installation) + - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-installation) - ``<install-dir>\hgrc.d\*.rc`` (per-installation) - - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-installation) + - ``<install-dir>\Mercurial.ini`` (per-installation) - ``<internal>/default.d/*.rc`` (defaults) .. note::
--- a/mercurial/scmwindows.py Fri Oct 09 14:48:59 2015 -0700 +++ b/mercurial/scmwindows.py Mon Oct 12 20:13:12 2015 +0200 @@ -9,16 +9,13 @@ filename = util.executablepath() # Use mercurial.ini found in directory with hg.exe progrc = os.path.join(os.path.dirname(filename), 'mercurial.ini') - if os.path.isfile(progrc): - rcpath.append(progrc) - return rcpath + rcpath.append(progrc) # Use hgrc.d found in directory with hg.exe progrcd = os.path.join(os.path.dirname(filename), 'hgrc.d') if os.path.isdir(progrcd): for f, kind in osutil.listdir(progrcd): if f.endswith('.rc'): rcpath.append(os.path.join(progrcd, f)) - return rcpath # else look for a system rcpath in the registry value = util.lookupreg('SOFTWARE\\Mercurial', None, _winreg.HKEY_LOCAL_MACHINE)