(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"setup taking and sanitizing funny paths">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\n"> <"\tmkdir -p a/b/c a/e &&\n"> <"\tD=$(pwd) &&\n"> <"\t>a/b/c/d &&\n"> <"\t>a/e/f\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"git add (absolute)">)} { (SQ <"\n"> <"\n"> <"\tgit add \"$D/a/b/c/d\" &&\n"> <"\tgit ls-files >current &&\n"> <"\techo a/b/c/d >expect &&\n"> <"\ttest_cmp expect current\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"git add (funny relative)">)} { (SQ <"\n"> <"\n"> <"\trm -f .git/index &&\n"> <"\t(\n"> <"\t\tcd a/b &&\n"> <"\t\tgit add \"../e/./f\"\n"> <"\t) &&\n"> <"\tgit ls-files >current &&\n"> <"\techo a/e/f >expect &&\n"> <"\ttest_cmp expect current\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"git rm (absolute)">)} { (SQ <"\n"> <"\n"> <"\trm -f .git/index &&\n"> <"\tgit add a &&\n"> <"\tgit rm -f --cached \"$D/a/b/c/d\" &&\n"> <"\tgit ls-files >current &&\n"> <"\techo a/e/f >expect &&\n"> <"\ttest_cmp expect current\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"git rm (funny relative)">)} { (SQ <"\n"> <"\n"> <"\trm -f .git/index &&\n"> <"\tgit add a &&\n"> <"\t(\n"> <"\t\tcd a/b &&\n"> <"\t\tgit rm -f --cached \"../e/./f\"\n"> <"\t) &&\n"> <"\tgit ls-files >current &&\n"> <"\techo a/b/c/d >expect &&\n"> <"\ttest_cmp expect current\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"git ls-files (absolute)">)} { (SQ <"\n"> <"\n"> <"\trm -f .git/index &&\n"> <"\tgit add a &&\n"> <"\tgit ls-files \"$D/a/e/../b\" >current &&\n"> <"\techo a/b/c/d >expect &&\n"> <"\ttest_cmp expect current\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"git ls-files (relative #1)">)} { (SQ <"\n"> <"\n"> <"\trm -f .git/index &&\n"> <"\tgit add a &&\n"> <"\t(\n"> <"\t\tcd a/b &&\n"> <"\t\tgit ls-files \"../b/c\"\n"> <"\t) >current &&\n"> <"\techo c/d >expect &&\n"> <"\ttest_cmp expect current\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"git ls-files (relative #2)">)} { (SQ <"\n"> <"\n"> <"\trm -f .git/index &&\n"> <"\tgit add a &&\n"> <"\t(\n"> <"\t\tcd a/b &&\n"> <"\t\tgit ls-files --full-name \"../e/f\"\n"> <"\t) >current &&\n"> <"\techo a/e/f >expect &&\n"> <"\ttest_cmp expect current\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"git ls-files (relative #3)">)} { (SQ <"\n"> <"\n"> <"\trm -f .git/index &&\n"> <"\tgit add a &&\n"> <"\t(\n"> <"\t\tcd a/b &&\n"> <"\t\tgit ls-files \"../e/f\"\n"> <"\t) >current &&\n"> <"\techo ../e/f >expect &&\n"> <"\ttest_cmp expect current\n"> <"\n"> ) } ) (C {(test_expect_success)} {(SQ <"commit using absolute path names">)} { (SQ <"\n"> <"\tgit commit -m \"foo\" &&\n"> <"\techo aa >>a/b/c/d &&\n"> <"\tgit commit -m \"aa\" \"$(pwd)/a/b/c/d\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"log using absolute path names">)} { (SQ <"\n"> <"\techo bb >>a/b/c/d &&\n"> <"\tgit commit -m \"bb\" \"$(pwd)/a/b/c/d\" &&\n"> <"\n"> <"\tgit log a/b/c/d >f1.txt &&\n"> <"\tgit log \"$(pwd)/a/b/c/d\" >f2.txt &&\n"> <"\ttest_cmp f1.txt f2.txt\n"> ) } ) (C {(test_expect_success)} {(SQ <"blame using absolute path names">)} { (SQ <"\n"> <"\tgit blame a/b/c/d >f1.txt &&\n"> <"\tgit blame \"$(pwd)/a/b/c/d\" >f2.txt &&\n"> <"\ttest_cmp f1.txt f2.txt\n"> ) } ) (C {(test_expect_success)} {(SQ <"setup deeper work tree">)} {(SQ <"\n"> <"\ttest_create_repo tester\n">)} ) (C {(test_expect_success)} {(SQ <"add a directory outside the work tree">)} { (SQ <"(\n"> <"\tcd tester &&\n"> <"\td1=\"$(cd .. ; pwd)\" &&\n"> <"\ttest_must_fail git add \"$d1\"\n"> <")"> ) } ) (C {(test_expect_success)} {(SQ <"add a file outside the work tree, nasty case 1">)} { (SQ <"(\n"> <"\tcd tester &&\n"> <"\tf=\"$(pwd)x\" &&\n"> <"\techo \"$f\" &&\n"> <"\ttouch \"$f\" &&\n"> <"\ttest_must_fail git add \"$f\"\n"> <")"> ) } ) (C {(test_expect_success)} {(SQ <"add a file outside the work tree, nasty case 2">)} { (SQ <"(\n"> <"\tcd tester &&\n"> <"\tf=\"$(pwd | sed \"s/.$//\")x\" &&\n"> <"\techo \"$f\" &&\n"> <"\ttouch \"$f\" &&\n"> <"\ttest_must_fail git add \"$f\"\n"> <")"> ) } ) (C {(test_done)}) ] )