(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'git status and symlinks'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <setup>)} { (SQ <'\n'> <'\techo .gitignore >.gitignore &&\n'> <'\techo actual >>.gitignore &&\n'> <'\techo expect >>.gitignore &&\n'> <'\tmkdir dir &&\n'> <'\techo x >dir/file1 &&\n'> <'\techo y >dir/file2 &&\n'> <'\tgit add dir &&\n'> <'\tgit commit -m initial &&\n'> <'\tgit tag initial\n'> ) } ) (C {(test_expect_success)} {(SYMLINKS)} {(SQ <'symlink to a directory'>)} { (SQ <'\n'> <'\ttest_when_finished "rm symlink" &&\n'> <'\tln -s dir symlink &&\n'> <'\techo "?? symlink" >expect &&\n'> <'\tgit status --porcelain >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_expect_success)} {(SYMLINKS)} {(SQ <'symlink replacing a directory'>)} { (SQ <'\n'> <'\ttest_when_finished "rm -rf copy && git reset --hard initial" &&\n'> <'\tmkdir copy &&\n'> <'\tcp dir/file1 copy/file1 &&\n'> <'\techo "changed in copy" >copy/file2 &&\n'> <'\tgit add copy &&\n'> <'\tgit commit -m second &&\n'> <'\trm -rf copy &&\n'> <'\tln -s dir copy &&\n'> <'\techo " D copy/file1" >expect &&\n'> <'\techo " D copy/file2" >>expect &&\n'> <'\techo "?? copy" >>expect &&\n'> <'\tgit status --porcelain >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_done)}) ] )