| #!/bin/sh |
| |
| test_description='apply to deeper directory without getting fooled with symlink' |
| . ./test-lib.sh |
| |
| lecho () { |
| for l_ |
| do |
| echo "$l_" |
| done |
| } |
| |
| test_expect_success setup ' |
| |
| mkdir -p arch/i386/boot arch/x86_64 && |
| lecho 1 2 3 4 5 >arch/i386/boot/Makefile && |
| ln -s ../i386/boot arch/x86_64/boot && |
| git add . && |
| test_tick && |
| git commit -m initial && |
| git branch test && |
| |
| rm arch/x86_64/boot && |
| mkdir arch/x86_64/boot && |
| lecho 2 3 4 5 6 >arch/x86_64/boot/Makefile && |
| git add . && |
| test_tick && |
| git commit -a -m second && |
| |
| git format-patch --binary -1 --stdout >test.patch |
| |
| ' |
| |
| test_expect_success apply ' |
| |
| git checkout test && |
| git diff --exit-code test && |
| git diff --exit-code --cached test && |
| git apply --index test.patch |
| |
| ' |
| |
| test_expect_success 'check result' ' |
| |
| git diff --exit-code master && |
| git diff --exit-code --cached master && |
| test_tick && |
| git commit -m replay && |
| T1=$(git rev-parse "master^{tree}") && |
| T2=$(git rev-parse "HEAD^{tree}") && |
| test "z$T1" = "z$T2" |
| |
| ' |
| |
| test_done |