diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt --- a/mercurial/helptext/config.txt +++ b/mercurial/helptext/config.txt @@ -75,6 +75,9 @@ - ``HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial`` (per-installation) - ``\hgrc.d\*.rc`` (per-installation) - ``\Mercurial.ini`` (per-installation) + - ``%PROGRAMDATA%\Mercurial\hgrc`` (per-system) + - ``%PROGRAMDATA%\Mercurial\Mercurial.ini`` (per-system) + - ``%PROGRAMDATA%\Mercurial\hgrc.d\*.rc`` (per-system) - ``/*.rc`` (defaults) .. note:: diff --git a/mercurial/scmwindows.py b/mercurial/scmwindows.py --- a/mercurial/scmwindows.py +++ b/mercurial/scmwindows.py @@ -38,6 +38,20 @@ # Use hgrc.d found in directory with hg.exe _processdir(os.path.join(os.path.dirname(filename), b'hgrc.d')) + # treat a PROGRAMDATA directory as equivalent to /etc/mercurial + programdata = encoding.environ.get(b'PROGRAMDATA') + if programdata: + programdata = os.path.join(programdata, b'Mercurial') + _processdir(os.path.join(programdata, b'hgrc.d')) + + ini = os.path.join(programdata, b'mercurial.ini') + if os.path.isfile(ini): + rcpath.append(ini) + + ini = os.path.join(programdata, b'hgrc') + if os.path.isfile(ini): + rcpath.append(ini) + # next look for a system rcpath in the registry value = util.lookupreg( b'SOFTWARE\\Mercurial', None, winreg.HKEY_LOCAL_MACHINE diff --git a/relnotes/next b/relnotes/next --- a/relnotes/next +++ b/relnotes/next @@ -1,5 +1,7 @@ == New Features == + * Windows will process hgrc files in %PROGRAMDATA%\Mercurial\hgrc.d. + == New Experimental Features ==