worktree: delete .git/worktrees if empty after 'remove'
[git] / t / t7515-status-symlinks.sh
1 #!/bin/sh
2
3 test_description='git status and symlinks'
4
5 . ./test-lib.sh
6
7 test_expect_success 'setup' '
8         echo .gitignore >.gitignore &&
9         echo actual >>.gitignore &&
10         echo expect >>.gitignore &&
11         mkdir dir &&
12         echo x >dir/file1 &&
13         echo y >dir/file2 &&
14         git add dir &&
15         git commit -m initial &&
16         git tag initial
17 '
18
19 test_expect_success SYMLINKS 'symlink to a directory' '
20         test_when_finished "rm symlink" &&
21         ln -s dir symlink &&
22         echo "?? symlink" >expect &&
23         git status --porcelain >actual &&
24         test_cmp expect actual
25 '
26
27 test_expect_success SYMLINKS 'symlink replacing a directory' '
28         test_when_finished "rm -rf copy && git reset --hard initial" &&
29         mkdir copy &&
30         cp dir/file1 copy/file1 &&
31         echo "changed in copy" >copy/file2 &&
32         git add copy &&
33         git commit -m second &&
34         rm -rf copy &&
35         ln -s dir copy &&
36         echo " D copy/file1" >expect &&
37         echo " D copy/file2" >>expect &&
38         echo "?? copy" >>expect &&
39         git status --porcelain >actual &&
40         test_cmp expect actual
41 '
42
43 test_done