| #!/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 |