diff --git a/builtin/var.c b/builtin/var.c index 5dc384810c0969..f4b1f34e4035ab 100644 --- a/builtin/var.c +++ b/builtin/var.c @@ -51,7 +51,13 @@ static char *default_branch(int ident_flag UNUSED) static char *shell_path(int ident_flag UNUSED) { +#ifdef WIN32 + char *p = locate_in_PATH("sh"); + convert_slashes(p); + return p; +#else return xstrdup(SHELL_PATH); +#endif } static char *git_attr_val_system(int ident_flag UNUSED) diff --git a/t/t0007-git-var.sh b/t/t0007-git-var.sh index ff4fd9348cca64..9fc5882387390a 100755 --- a/t/t0007-git-var.sh +++ b/t/t0007-git-var.sh @@ -157,7 +157,7 @@ test_expect_success POSIXPERM 'GIT_SHELL_PATH points to a valid executable' ' test_expect_success MINGW 'GIT_SHELL_PATH points to a suitable shell' ' shellpath=$(git var GIT_SHELL_PATH) && case "$shellpath" in - *sh) ;; + [A-Z]:/*/sh.exe) test -f "$shellpath";; *) return 1;; esac '