X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=t%2Ft4119-apply-config.sh;h=620a9207bf14f5a7e2506742f1e7d0ddb91d0a78;hb=467592ea926d105e1cb78b2471b28bf37e8c62c6;hp=816b5b8fb2388e59d99532f49a5c46f81dfc8125;hpb=56185f49d03cae28048146e902089ea366c6cd6c;p=git.git diff --git a/t/t4119-apply-config.sh b/t/t4119-apply-config.sh index 816b5b8fb..620a9207b 100755 --- a/t/t4119-apply-config.sh +++ b/t/t4119-apply-config.sh @@ -18,6 +18,35 @@ test_expect_success setup ' 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 && @@ -25,13 +54,7 @@ test_expect_success 'apply --whitespace=strip' ' git update-index --refresh && git apply --whitespace=strip patch.file && - if grep " " sub/file1 - then - echo "Eh?" - false - else - echo Happy - fi + check_result sub/file1 ' test_expect_success 'apply --whitespace=strip from config' ' @@ -42,13 +65,7 @@ test_expect_success 'apply --whitespace=strip from config' ' git config apply.whitespace strip && git apply patch.file && - if grep " " sub/file1 - then - echo "Eh?" - false - else - echo Happy - fi + check_result sub/file1 ' D=`pwd` @@ -62,14 +79,8 @@ test_expect_success 'apply --whitespace=strip in subdir' ' git update-index --refresh && cd sub && - git apply --whitespace=strip -p2 ../patch.file && - if grep " " file1 - then - echo "Eh?" - false - else - echo Happy - fi + git apply --whitespace=strip ../patch.file && + check_result file1 ' test_expect_success 'apply --whitespace=strip from config in subdir' ' @@ -81,14 +92,71 @@ test_expect_success 'apply --whitespace=strip from config in subdir' ' git update-index --refresh && cd sub && - git apply -p2 ../patch.file && - if grep " " file1 - then - echo "Eh?" - false - else - echo Happy - fi + 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