#!/bin/sh test_description='apply to deeper directory without getting fooled with symlink' . ./test-lib.sh if ! test_have_prereq SYMLINKS then say 'Symbolic links not supported, skipping tests.' test_done exit fi 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