]> git.ipfire.org Git - thirdparty/git.git/commitdiff
mingw: support Windows Server 2016 again
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Sun, 3 Aug 2025 21:25:18 +0000 (21:25 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 4 Aug 2025 01:30:39 +0000 (18:30 -0700)
It was reported to the Git for Windows project that a simple `git init`
fails on Windows Server 2016:

  D:\Dev\test> git init
  error: could not write config file D:/Dev/test/.git/config: Function not implemented
  fatal: could not set 'core.repositoryformatversion' to '0'

According to https://endoflife.date/windows-server, Windows Server 2016
is officially supported for another one-and-a-half years as of time of
writing, so this is not good.

The culprit is the `mingw_rename()` changes that try to use POSIX
semantics when available, but fail to fall back properly on Windows
Server 2016.

This fixes https://github.com/git-for-windows/git/issues/5695.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/mingw.c

index d53ce38b7f829b9e85fe98a8cb0a7f3251ef9403..8538e3d1729d2585ce253f74325cb57be74d7823 100644 (file)
@@ -2277,7 +2277,9 @@ repeat:
                 * current system doesn't support FileRenameInfoEx. Keep us
                 * from using it in future calls and retry.
                 */
-               if (gle == ERROR_INVALID_PARAMETER || gle == ERROR_NOT_SUPPORTED) {
+               if (gle == ERROR_INVALID_PARAMETER ||
+                   gle == ERROR_NOT_SUPPORTED ||
+                   gle == ERROR_INVALID_FUNCTION) {
                        supports_file_rename_info_ex = 0;
                        goto repeat;
                }