]> git.ipfire.org Git - thirdparty/git.git/commitdiff
mingw_rename: support ReFS on Windows 2022
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Sun, 3 Aug 2025 21:25:17 +0000 (21:25 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 4 Aug 2025 01:30:39 +0000 (18:30 -0700)
ReFS is an alternative filesystem to NTFS. On Windows 2022, it seems not
to support the rename operation using POSIX semantics that Git uses on
Windows as of 391bceae4350 (compat/mingw: support POSIX semantics for
atomic renames, 2024-10-27).

However, Windows 2022 reports `ERROR_NOT_SUPPORTED` in this instance.
This is in contrast to `ERROR_INVALID_PARAMETER` (as previous Windows
versions would report that do not support POSIX semantics in renames at
all).

Let's handle both errors the same: by falling back to the best-effort
option, namely to rename without POSIX semantics.

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

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

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