]> git.ipfire.org Git - thirdparty/git.git/commitdiff
mingw: move Git for Windows' system config where users expect it
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Tue, 22 Jun 2021 10:46:46 +0000 (10:46 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 29 Jun 2021 03:11:48 +0000 (20:11 -0700)
Git for Windows' prefix is `/mingw64/` (or `/mingw32/` for 32-bit
versions), therefore the system config is located at the clunky location
`C:\Program Files\Git\mingw64\etc\gitconfig`.

This moves the system config into a more logical location: the `mingw64`
part of `C:\Program Files\Git\mingw64\etc\gitconfig` never made sense,
as it is a mere implementation detail. Let's skip the `mingw64` part and
move this to `C:\Program Files\Git\etc\gitconfig`.

Side note: in the rare (and not recommended) case a user chooses to
install 32-bit Git for Windows on a 64-bit system, the path will of
course be `C:\Program Files (x86)\Git\etc\gitconfig`.

Background: During the Git for Windows v1.x days, the system config was
located at `C:\Program Files (x86)\Git\etc\gitconfig`. With Git for
Windows v2.x, it moved to `C:\Program Files\Git\mingw64\gitconfig` (or
`C:\Program Files (x86)\Git\mingw32\gitconfig`). Rather than fixing it
back then, we tried to introduce a "Windows-wide" config, but that never
caught on.

Likewise, we move the system `gitattributes` into the same directory.

Obviously, we are cautious to do this only for the known install
locations `/mingw64` and `/mingw32`; If anybody wants to override that
while building their version of Git (e.g. via `make prefix=$HOME`), we
leave the default location of the system config and gitattributes alone.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
config.mak.uname

index cb443b4e023adb9957b17714ed4c72bc21dc8744..0587a23c1cb1a29a96e03342a14488c383a4ce88 100644 (file)
@@ -437,6 +437,11 @@ ifeq ($(uname_S),Windows)
        NO_POSIX_GOODIES = UnfortunatelyYes
        NATIVE_CRLF = YesPlease
        DEFAULT_HELP_FORMAT = html
+ifeq (/mingw64,$(subst 32,64,$(prefix)))
+       # Move system config into top-level /etc/
+       ETC_GITCONFIG = ../etc/gitconfig
+       ETC_GITATTRIBUTES = ../etc/gitattributes
+endif
 
        CC = compat/vcbuild/scripts/clink.pl
        AR = compat/vcbuild/scripts/lib.pl
@@ -671,6 +676,11 @@ else
                USE_LIBPCRE= YesPlease
                NO_CURL =
                USE_NED_ALLOCATOR = YesPlease
+               ifeq (/mingw64,$(subst 32,64,$(prefix)))
+                       # Move system config into top-level /etc/
+                       ETC_GITCONFIG = ../etc/gitconfig
+                       ETC_GITATTRIBUTES = ../etc/gitattributes
+               endif
        else
                COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO
                NO_CURL = YesPlease