git/t/t7515-status-symlinks.sh
René Scharfe ccad42d483 read-cache: check for leading symlinks when refreshing index
Don't add paths with leading symlinks to the index while refreshing; we
only track those symlinks themselves.  We already ignore them while
preloading (see read_index_preload.c).

Reported-by: Nikolay Avdeev <avdeev@math.vsu.ru>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-08-10 11:16:20 -07:00

44 lines
972 B
Bash
Executable File

#!/bin/sh
test_description='git status and symlinks'
. ./test-lib.sh
test_expect_success 'setup' '
echo .gitignore >.gitignore &&
echo actual >>.gitignore &&
echo expect >>.gitignore &&
mkdir dir &&
echo x >dir/file1 &&
echo y >dir/file2 &&
git add dir &&
git commit -m initial &&
git tag initial
'
test_expect_success SYMLINKS 'symlink to a directory' '
test_when_finished "rm symlink" &&
ln -s dir symlink &&
echo "?? symlink" >expect &&
git status --porcelain >actual &&
test_cmp expect actual
'
test_expect_success SYMLINKS 'symlink replacing a directory' '
test_when_finished "rm -rf copy && git reset --hard initial" &&
mkdir copy &&
cp dir/file1 copy/file1 &&
echo "changed in copy" >copy/file2 &&
git add copy &&
git commit -m second &&
rm -rf copy &&
ln -s dir copy &&
echo " D copy/file1" >expect &&
echo " D copy/file2" >>expect &&
echo "?? copy" >>expect &&
git status --porcelain >actual &&
test_cmp expect actual
'
test_done