#!/bin/sh # # Copyright (c) 2007 Junio C Hamano # test_description='git apply --whitespace=strip and configuration file. ' . ./test-lib.sh test_expect_success setup ' mkdir sub && echo A >sub/file1 && cp sub/file1 saved && git add sub/file1 && echo "B " >sub/file1 && git diff >patch.file ' # Also handcraft GNU diff output; note this has trailing whitespace. cat >gpatch.file <<\EOF && --- file1 2007-02-21 01:04:24.000000000 -0800 +++ file1+ 2007-02-21 01:07:44.000000000 -0800 @@ -1 +1 @@ -A +B EOF sed -e 's|file1|sub/&|' gpatch.file >gpatch-sub.file && sed -e ' /^--- /s|file1|a/sub/&| /^+++ /s|file1|b/sub/&| ' gpatch.file >gpatch-ab-sub.file && check_result () { if grep " " "$1" then echo "Eh?" false elif grep B "$1" then echo Happy else echo "Huh?" false fi } test_expect_success 'apply --whitespace=strip' ' rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && git apply --whitespace=strip patch.file && check_result sub/file1 ' test_expect_success 'apply --whitespace=strip from config' ' rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && git config apply.whitespace strip && git apply patch.file && check_result sub/file1 ' D=`pwd` test_expect_success 'apply --whitespace=strip in subdir' ' cd "$D" && git config --unset-all apply.whitespace rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && cd sub && git apply --whitespace=strip ../patch.file && check_result file1 ' test_expect_success 'apply --whitespace=strip from config in subdir' ' cd "$D" && git config apply.whitespace strip && rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && cd sub && git apply ../patch.file && check_result file1 ' test_expect_success 'same in subdir but with traditional patch input' ' cd "$D" && git config apply.whitespace strip && rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && cd sub && git apply ../gpatch.file && check_result file1 ' test_expect_success 'same but with traditional patch input of depth 1' ' cd "$D" && git config apply.whitespace strip && rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && cd sub && git apply ../gpatch-sub.file && check_result file1 ' test_expect_success 'same but with traditional patch input of depth 2' ' cd "$D" && git config apply.whitespace strip && rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && cd sub && git apply ../gpatch-ab-sub.file && check_result file1 ' test_expect_success 'same but with traditional patch input of depth 1' ' cd "$D" && git config apply.whitespace strip && rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && git apply -p0 gpatch-sub.file && check_result sub/file1 ' test_expect_success 'same but with traditional patch input of depth 2' ' cd "$D" && git config apply.whitespace strip && rm -f sub/file1 && cp saved sub/file1 && git update-index --refresh && git apply gpatch-ab-sub.file && check_result sub/file1 ' test_done