From 8b9de093190e6b1d6066efaf4afd9dc988096987 Mon Sep 17 00:00:00 2001 From: Johannes Sixt Date: Wed, 17 Oct 2007 14:35:10 +0200 Subject: [PATCH] Implement a cpio emulation in git-merge.sh for Windows. GNU tar is used as the archiver. It doesn't matter that the archive has a different format because it is only a temporary stash that is consumed by the emulation itself. Signed-off-by: Johannes Sixt --- git-merge.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/git-merge.sh b/git-merge.sh index cde09d4d60..0f15884b54 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -26,6 +26,24 @@ use_strategies= allow_fast_forward=t allow_trivial_merge=t +# Fix some commands on Windows +case $(uname -s) in +*MINGW*) + # there's no cpio; emulate with tar + cpio () { + case "$*" in + "-0 -o") + tar --create --file=- --null --files-from=- + ;; + "-iuv") + tar xvf - + ;; + *) die "internal error: unexpected cpio $*";; + esac + } + ;; +esac + dropsave() { rm -f -- "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/MERGE_MSG" \ "$GIT_DIR/MERGE_SAVE" || exit 1