From: Johannes Schindelin via GitGitGadget <hidden> Date: 2021-06-22 10:46:59
Implementation details let Git for Windows' git.exe live in /mingw64/bin
(that is the pseudo-Unix path, of course, the real Windows path will be
prefixed by the actual installation location). This resulted in the awkward
location of the system config in C:\Program Files\Git\mingw64\etc\gitconfig,
and that is what Git for Windows v2.x used for a few years.
A much more natural location, however, is the same path without that mingw64
infix. Therefore, the Git for Windows project switched (back) to that
location for a while now.
It is time to bring that change into core Git.
Dennis Ameling (1):
cmake(windows): set correct path to the system Git config
Johannes Schindelin (2):
mingw: move Git for Windows' system config where users expect it
config: normalize the path of the system gitconfig
config.c | 7 ++++---
config.mak.uname | 10 ++++++++++
contrib/buildsystems/CMakeLists.txt | 11 +++++++----
3 files changed, 21 insertions(+), 7 deletions(-)
base-commit: 670b81a890388c60b7032a4f5b879f2ece8c4558
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-984%2Fdscho%2Fmove-gfw-system-config-to-top-level-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-984/dscho/move-gfw-system-config-to-top-level-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/984
--
gitgitgadget
From: Dennis Ameling via GitGitGadget <hidden> Date: 2021-06-22 10:46:56
From: Dennis Ameling <redacted>
Currently, when Git for Windows is built with CMake, the system Git config is
expected in a different location than when building via `make`: the former
expects it to be in `<runtime-prefix>/mingw64/etc/gitconfig`, the latter in
`<runtime-prefix>/etc/gitconfig`.
Because of this, things like `git clone` do not work correctly (because cURL is
no longer able to find its certificate bundle that it needs to validate HTTPS
certificates). See the full bug report and discussion here:
https://github.com/git-for-windows/git/issues/3071#issuecomment-789261386.
This commit aligns the CMake-based build by mimicking what is already done in
`config.mak.uname`.
This closes https://github.com/git-for-windows/git/issues/3071.
Signed-off-by: Dennis Ameling <redacted>
---
contrib/buildsystems/CMakeLists.txt | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
From: Johannes Schindelin via GitGitGadget <hidden> Date: 2021-06-22 10:47:01
From: Johannes Schindelin <redacted>
Git for Windows is compiled with a runtime prefix, and that runtime
prefix is typically `C:/Program Files/Git/mingw64`. As we want the
system gitconfig to live in the sibling directory `etc`, we define the
relative path as `../etc/gitconfig`.
However, as reported by Philip Oakley, the output of `git config
--show-origin --system -l` looks rather ugly, as it shows the path as
`file:C:/Program Files/Git/mingw64/../etc/gitconfig`, i.e. with the
`mingw64/../` part.
By normalizing the path, we get a prettier path.
Signed-off-by: Johannes Schindelin <redacted>
---
config.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
From: Johannes Schindelin via GitGitGadget <hidden> Date: 2021-06-22 10:47:03
From: Johannes Schindelin <redacted>
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 <redacted>
---
config.mak.uname | 10 ++++++++++
1 file changed, 10 insertions(+)