Browse Source
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>maint


2 changed files with 51 additions and 0 deletions
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
#!/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 |
Loading…
Reference in new issue