Skip to content

Commit 4e4a480

Browse files
kbleesGit for Windows Build Agent
authored andcommitted
Win32: change default of 'core.symlinks' to false
Symlinks on Windows don't work the same way as on Unix systems. E.g. there are different types of symlinks for directories and files, creating symlinks requires administrative privileges etc. By default, disable symlink support on Windows. I.e. users explicitly have to enable it with 'git config [--system|--global] core.symlinks true'. The test suite ignores system / global config files. Allow testing *with* symlink support by checking if native symlinks are enabled in MSys2 (via 'MSYS=winsymlinks:nativestrict'). Reminder: This would need to be changed if / when we find a way to run the test suite in a non-MSys-based shell (e.g. dash). Signed-off-by: Karsten Blees <[email protected]>
1 parent 038c6f6 commit 4e4a480

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

compat/mingw.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3257,6 +3257,15 @@ static void setup_windows_environment(void)
32573257

32583258
if (!getenv("LC_ALL") && !getenv("LC_CTYPE") && !getenv("LANG"))
32593259
setenv("LC_CTYPE", "C.UTF-8", 1);
3260+
3261+
/*
3262+
* Change 'core.symlinks' default to false, unless native symlinks are
3263+
* enabled in MSys2 (via 'MSYS=winsymlinks:nativestrict'). Thus we can
3264+
* run the test suite (which doesn't obey config files) with or without
3265+
* symlink support.
3266+
*/
3267+
if (!(tmp = getenv("MSYS")) || !strstr(tmp, "winsymlinks:nativestrict"))
3268+
has_symlinks = 0;
32603269
}
32613270

32623271
static void get_current_user_sid(PSID *sid, HANDLE *linked_token)

0 commit comments

Comments
 (0)