If the PATH lists the Windows system directories before the MSYS directories, Windows's own incompatible sort and find commands would be picked up. We implement these commands as functions and call the real tools by absolute path. Also add a dummy implementation of sync to avoid an error in git-repack. Signed-off-by: Johannes Sixt <johannes.sixt@xxxxxxxxxx> --- git-clone.sh | 4 ++++ git-sh-setup.sh | 17 +++++++++++++++++ t/test-lib.sh | 13 +++++++++++++ 3 files changed, 34 insertions(+), 0 deletions(-) diff --git a/git-clone.sh b/git-clone.sh index 640e29d..1fc5c92 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -35,6 +35,10 @@ die() { # Fix some commands on Windows case $(uname -s) in *MINGW*) + # Windows has its own (incompatible) find + find () { + /usr/bin/find "$@" + } # pwd must return a path with a drive letter bin_pwd() { # there are no symlinks to resolve: /bin/pwd is not needed diff --git a/git-sh-setup.sh b/git-sh-setup.sh index a44b1c7..822aa6f 100755 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -142,3 +142,20 @@ then } : ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"} fi + +# Fix some commands on Windows +case $(uname -s) in +*MINGW*) + # Windows has its own (incompatible) sort and find + sort () { + /usr/bin/sort "$@" + } + find () { + /usr/bin/find "$@" + } + # sync is missing + sync () { + : # no implementation + } + ;; +esac diff --git a/t/test-lib.sh b/t/test-lib.sh index 83889c4..e2010d5 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -366,3 +366,16 @@ do test_done esac done + +# Fix some commands on Windows +case $(uname -s) in +*MINGW*) + # Windows has its own (incompatible) sort and find + sort () { + /usr/bin/sort "$@" + } + find () { + /usr/bin/find "$@" + } + ;; +esac -- 1.5.4.1.126.ge5a7d - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html