(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'git clean basic tests' span_id:15))} spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(git)} {(config)} {(clean.requireForce)} {(no)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:36))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:40) (Token id:Id.Lit_Chars val:'\n' span_id:41) (Token id:Id.Lit_Chars val:'\tmkdir -p src &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\ttouch src/part1.c Makefile &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\techo build >.gitignore &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\techo \\*.o >>.gitignore &&\n' span_id:45) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tgit commit -m setup &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\ttouch src/part2.c README &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\tgit add .\n' span_id:49) (Token id:Id.Lit_Chars val:'\n' span_id:50) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean with skip-worktree .gitignore' span_id:57))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:61) (Token id: Id.Lit_Chars val: '\tgit update-index --skip-worktree .gitignore &&\n' span_id: 62 ) (Token id:Id.Lit_Chars val:'\trm .gitignore &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:64) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 65 ) (Token id:Id.Lit_Chars val:'\tgit clean &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\ttest ! -f a.out &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tgit update-index --no-skip-worktree .gitignore &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\tgit checkout .gitignore\n' span_id:77) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean' span_id:84))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:88) (Token id:Id.Lit_Chars val:'\n' span_id:89) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:90) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 91 ) (Token id:Id.Lit_Chars val:'\tgit clean &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:96) (Token id:Id.Lit_Chars val:'\ttest ! -f a.out &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:98) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:100) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:101) (Token id:Id.Lit_Chars val:'\n' span_id:102) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean src/' span_id:109))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:113) (Token id:Id.Lit_Chars val:'\n' span_id:114) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:115) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 116 ) (Token id:Id.Lit_Chars val:'\tgit clean src/ &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:119) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:126) (Token id:Id.Lit_Chars val:'\n' span_id:127) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean src/ src/' span_id:134))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:138) (Token id:Id.Lit_Chars val:'\n' span_id:139) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:140) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 141 ) (Token id:Id.Lit_Chars val:'\tgit clean src/ src/ &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:143) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:150) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:151) (Token id:Id.Lit_Chars val:'\n' span_id:152) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean with prefix' span_id:159))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:163) (Token id:Id.Lit_Chars val:'\n' span_id:164) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs src/test &&\n' span_id:165) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so src/test/1.c &&\n' span_id: 166 ) (Token id:Id.Lit_Chars val:'\t(cd src/ && git clean) &&\n' span_id:167) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:168) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:171) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:172) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\ttest -f src/test/1.c &&\n' span_id:174) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:175) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:176) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:177) (Token id:Id.Lit_Chars val:'\n' span_id:178) ) } ) (C {(test_expect_success)} {(C_LOCALE_OUTPUT)} {(SQ (Token id:Id.Lit_Chars val:'git clean with relative prefix' span_id:187))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:191) (Token id:Id.Lit_Chars val:'\n' span_id:192) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:193) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 194 ) (Token id:Id.Lit_Chars val:'\twould_clean=$(\n' span_id:195) (Token id:Id.Lit_Chars val:'\t\tcd docs &&\n' span_id:196) (Token id:Id.Lit_Chars val:'\t\tgit clean -n ../src |\n' span_id:197) (Token id:Id.Lit_Chars val:'\t\tsed -n -e "s|^Would remove ||p"\n' span_id:198) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:199) (Token id: Id.Lit_Chars val: '\tverbose test "$would_clean" = ../src/part3.c\n' span_id: 200 ) ) } ) (C {(test_expect_success)} {(C_LOCALE_OUTPUT)} {(SQ (Token id:Id.Lit_Chars val:'git clean with absolute path' span_id:209))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:213) (Token id:Id.Lit_Chars val:'\n' span_id:214) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:215) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 216 ) (Token id:Id.Lit_Chars val:'\twould_clean=$(\n' span_id:217) (Token id:Id.Lit_Chars val:'\t\tcd docs &&\n' span_id:218) (Token id:Id.Lit_Chars val:'\t\tgit clean -n "$(pwd)/../src" |\n' span_id:219) (Token id:Id.Lit_Chars val:'\t\tsed -n -e "s|^Would remove ||p"\n' span_id:220) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:221) (Token id: Id.Lit_Chars val: '\tverbose test "$would_clean" = ../src/part3.c\n' span_id: 222 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean with out of work tree relative path' span_id:229))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:233) (Token id:Id.Lit_Chars val:'\n' span_id:234) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:235) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 236 ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:237) (Token id:Id.Lit_Chars val:'\t\tcd docs &&\n' span_id:238) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git clean -n ../..\n' span_id:239) (Token id:Id.Lit_Chars val:'\t)\n' span_id:240) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean with out of work tree absolute path' span_id:247))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:251) (Token id:Id.Lit_Chars val:'\n' span_id:252) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:253) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 254 ) (Token id:Id.Lit_Chars val:'\tdd=$(cd .. && pwd) &&\n' span_id:255) (Token id:Id.Lit_Chars val:'\t(\n' span_id:256) (Token id:Id.Lit_Chars val:'\t\tcd docs &&\n' span_id:257) (Token id:Id.Lit_Chars val:'\t\ttest_must_fail git clean -n $dd\n' span_id:258) (Token id:Id.Lit_Chars val:'\t)\n' span_id:259) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -d with prefix and path' span_id:266))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:270) (Token id:Id.Lit_Chars val:'\n' span_id:271) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs src/feature &&\n' span_id:272) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c src/feature/file.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 273 ) (Token id:Id.Lit_Chars val:'\t(cd src/ && git clean -d feature/) &&\n' span_id:274) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:275) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:276) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:277) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:278) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:279) (Token id:Id.Lit_Chars val:'\ttest -f src/part3.c &&\n' span_id:280) (Token id:Id.Lit_Chars val:'\ttest ! -f src/feature/file.c &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:282) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:283) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:284) (Token id:Id.Lit_Chars val:'\n' span_id:285) ) } ) (C {(test_expect_success)} {(SYMLINKS)} {(SQ (Token id:Id.Lit_Chars val:'git clean symbolic link' span_id:294))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:298) (Token id:Id.Lit_Chars val:'\n' span_id:299) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:300) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 301 ) (Token id:Id.Lit_Chars val:'\tln -s docs/manual.txt src/part4.c &&\n' span_id:302) (Token id:Id.Lit_Chars val:'\tgit clean &&\n' span_id:303) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:304) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:305) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:306) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:307) (Token id:Id.Lit_Chars val:'\ttest ! -f a.out &&\n' span_id:308) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:309) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part4.c &&\n' span_id:310) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:311) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:312) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:313) (Token id:Id.Lit_Chars val:'\n' span_id:314) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean with wildcard' span_id:321))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:325) (Token id:Id.Lit_Chars val:'\n' span_id:326) (Token id:Id.Lit_Chars val:'\ttouch a.clean b.clean other.c &&\n' span_id:327) (Token id:Id.Lit_Chars val:'\tgit clean "*.clean" &&\n' span_id:328) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:329) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:330) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:331) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:332) (Token id:Id.Lit_Chars val:'\ttest ! -f a.clean &&\n' span_id:333) (Token id:Id.Lit_Chars val:'\ttest ! -f b.clean &&\n' span_id:334) (Token id:Id.Lit_Chars val:'\ttest -f other.c\n' span_id:335) (Token id:Id.Lit_Chars val:'\n' span_id:336) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -n' span_id:343))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:347) (Token id:Id.Lit_Chars val:'\n' span_id:348) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:349) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 350 ) (Token id:Id.Lit_Chars val:'\tgit clean -n &&\n' span_id:351) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:352) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:353) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:354) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:355) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:356) (Token id:Id.Lit_Chars val:'\ttest -f src/part3.c &&\n' span_id:357) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:358) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:359) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:360) (Token id:Id.Lit_Chars val:'\n' span_id:361) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -d' span_id:368))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:372) (Token id:Id.Lit_Chars val:'\n' span_id:373) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:374) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 375 ) (Token id:Id.Lit_Chars val:'\tgit clean -d &&\n' span_id:376) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:377) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:378) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:379) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:380) (Token id:Id.Lit_Chars val:'\ttest ! -f a.out &&\n' span_id:381) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:382) (Token id:Id.Lit_Chars val:'\ttest ! -d docs &&\n' span_id:383) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:384) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:385) (Token id:Id.Lit_Chars val:'\n' span_id:386) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -d src/ examples/' span_id:393))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:397) (Token id:Id.Lit_Chars val:'\n' span_id:398) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs examples &&\n' span_id:399) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so examples/1.c &&\n' span_id: 400 ) (Token id:Id.Lit_Chars val:'\tgit clean -d src/ examples/ &&\n' span_id:401) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:402) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:403) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:404) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:405) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:406) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:407) (Token id:Id.Lit_Chars val:'\ttest ! -f examples/1.c &&\n' span_id:408) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:409) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:410) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:411) (Token id:Id.Lit_Chars val:'\n' span_id:412) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -x' span_id:419))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:423) (Token id:Id.Lit_Chars val:'\n' span_id:424) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:425) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 426 ) (Token id:Id.Lit_Chars val:'\tgit clean -x &&\n' span_id:427) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:428) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:429) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:430) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:431) (Token id:Id.Lit_Chars val:'\ttest ! -f a.out &&\n' span_id:432) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:433) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:434) (Token id:Id.Lit_Chars val:'\ttest ! -f obj.o &&\n' span_id:435) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:436) (Token id:Id.Lit_Chars val:'\n' span_id:437) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -d -x' span_id:444))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:448) (Token id:Id.Lit_Chars val:'\n' span_id:449) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:450) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 451 ) (Token id:Id.Lit_Chars val:'\tgit clean -d -x &&\n' span_id:452) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:453) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:454) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:455) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:456) (Token id:Id.Lit_Chars val:'\ttest ! -f a.out &&\n' span_id:457) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:458) (Token id:Id.Lit_Chars val:'\ttest ! -d docs &&\n' span_id:459) (Token id:Id.Lit_Chars val:'\ttest ! -f obj.o &&\n' span_id:460) (Token id:Id.Lit_Chars val:'\ttest ! -d build\n' span_id:461) (Token id:Id.Lit_Chars val:'\n' span_id:462) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -d -x with ignored tracked directory' span_id:469))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:473) (Token id:Id.Lit_Chars val:'\n' span_id:474) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:475) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 476 ) (Token id:Id.Lit_Chars val:'\tgit clean -d -x -e src &&\n' span_id:477) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:478) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:479) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:480) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:481) (Token id:Id.Lit_Chars val:'\ttest ! -f a.out &&\n' span_id:482) (Token id:Id.Lit_Chars val:'\ttest -f src/part3.c &&\n' span_id:483) (Token id:Id.Lit_Chars val:'\ttest ! -d docs &&\n' span_id:484) (Token id:Id.Lit_Chars val:'\ttest ! -f obj.o &&\n' span_id:485) (Token id:Id.Lit_Chars val:'\ttest ! -d build\n' span_id:486) (Token id:Id.Lit_Chars val:'\n' span_id:487) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -X' span_id:494))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:498) (Token id:Id.Lit_Chars val:'\n' span_id:499) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:500) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 501 ) (Token id:Id.Lit_Chars val:'\tgit clean -X &&\n' span_id:502) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:503) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:504) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:505) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:506) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:507) (Token id:Id.Lit_Chars val:'\ttest -f src/part3.c &&\n' span_id:508) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:509) (Token id:Id.Lit_Chars val:'\ttest ! -f obj.o &&\n' span_id:510) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:511) (Token id:Id.Lit_Chars val:'\n' span_id:512) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -d -X' span_id:519))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:523) (Token id:Id.Lit_Chars val:'\n' span_id:524) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:525) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 526 ) (Token id:Id.Lit_Chars val:'\tgit clean -d -X &&\n' span_id:527) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:528) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:529) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:530) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:531) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:532) (Token id:Id.Lit_Chars val:'\ttest -f src/part3.c &&\n' span_id:533) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:534) (Token id:Id.Lit_Chars val:'\ttest ! -f obj.o &&\n' span_id:535) (Token id:Id.Lit_Chars val:'\ttest ! -d build\n' span_id:536) (Token id:Id.Lit_Chars val:'\n' span_id:537) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -d -X with ignored tracked directory' span_id:544))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:548) (Token id:Id.Lit_Chars val:'\n' span_id:549) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:550) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 551 ) (Token id:Id.Lit_Chars val:'\tgit clean -d -X -e src &&\n' span_id:552) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:553) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:554) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:555) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:556) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:557) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:558) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:559) (Token id:Id.Lit_Chars val:'\ttest ! -f obj.o &&\n' span_id:560) (Token id:Id.Lit_Chars val:'\ttest ! -d build\n' span_id:561) (Token id:Id.Lit_Chars val:'\n' span_id:562) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clean.requireForce defaults to true' span_id:569))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:573) (Token id:Id.Lit_Chars val:'\n' span_id:574) (Token id: Id.Lit_Chars val: '\tgit config --unset clean.requireForce &&\n' span_id: 575 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git clean\n' span_id:576) (Token id:Id.Lit_Chars val:'\n' span_id:577) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:clean.requireForce span_id:584))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:588) (Token id:Id.Lit_Chars val:'\n' span_id:589) (Token id: Id.Lit_Chars val: '\tgit config clean.requireForce true &&\n' span_id: 590 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git clean\n' span_id:591) (Token id:Id.Lit_Chars val:'\n' span_id:592) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clean.requireForce and -n' span_id:599))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:603) (Token id:Id.Lit_Chars val:'\n' span_id:604) (Token id:Id.Lit_Chars val:'\tmkdir -p build docs &&\n' span_id:605) (Token id: Id.Lit_Chars val: '\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n' span_id: 606 ) (Token id:Id.Lit_Chars val:'\tgit clean -n &&\n' span_id:607) (Token id:Id.Lit_Chars val:'\ttest -f Makefile &&\n' span_id:608) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:609) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:610) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:611) (Token id:Id.Lit_Chars val:'\ttest -f a.out &&\n' span_id:612) (Token id:Id.Lit_Chars val:'\ttest -f src/part3.c &&\n' span_id:613) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:614) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:615) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:616) (Token id:Id.Lit_Chars val:'\n' span_id:617) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clean.requireForce and -f' span_id:624))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:628) (Token id:Id.Lit_Chars val:'\n' span_id:629) (Token id:Id.Lit_Chars val:'\tgit clean -f &&\n' span_id:630) (Token id:Id.Lit_Chars val:'\ttest -f README &&\n' span_id:631) (Token id:Id.Lit_Chars val:'\ttest -f src/part1.c &&\n' span_id:632) (Token id:Id.Lit_Chars val:'\ttest -f src/part2.c &&\n' span_id:633) (Token id:Id.Lit_Chars val:'\ttest ! -f a.out &&\n' span_id:634) (Token id:Id.Lit_Chars val:'\ttest ! -f src/part3.c &&\n' span_id:635) (Token id:Id.Lit_Chars val:'\ttest -f docs/manual.txt &&\n' span_id:636) (Token id:Id.Lit_Chars val:'\ttest -f obj.o &&\n' span_id:637) (Token id:Id.Lit_Chars val:'\ttest -f build/lib.so\n' span_id:638) (Token id:Id.Lit_Chars val:'\n' span_id:639) ) } ) (C {(test_expect_success)} {(C_LOCALE_OUTPUT)} {(SQ (Token id:Id.Lit_Chars val:core.excludesfile span_id:648))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:652) (Token id:Id.Lit_Chars val:'\n' span_id:653) (Token id:Id.Lit_Chars val:'\techo excludes >excludes &&\n' span_id:654) (Token id:Id.Lit_Chars val:'\techo included >included &&\n' span_id:655) (Token id: Id.Lit_Chars val: '\tgit config core.excludesfile excludes &&\n' span_id: 656 ) (Token id:Id.Lit_Chars val:'\toutput=$(git clean -n excludes included 2>&1) &&\n' span_id:657) (Token id: Id.Lit_Chars val: '\texpr "$output" : ".*included" >/dev/null &&\n' span_id: 658 ) (Token id:Id.Lit_Chars val:'\t! expr "$output" : ".*excludes" >/dev/null\n' span_id:659) (Token id:Id.Lit_Chars val:'\n' span_id:660) ) } ) (C {(test_expect_success)} {(SANITY)} {(SQ (Token id:Id.Lit_Chars val:'removal failure' span_id:669))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:673) (Token id:Id.Lit_Chars val:'\n' span_id:674) (Token id:Id.Lit_Chars val:'\tmkdir foo &&\n' span_id:675) (Token id:Id.Lit_Chars val:'\ttouch foo/bar &&\n' span_id:676) (Token id: Id.Lit_Chars val: '\ttest_when_finished "chmod 755 foo" &&\n' span_id: 677 ) (Token id:Id.Lit_Chars val:'\t(exec <foo/bar &&\n' span_id:678) (Token id:Id.Lit_Chars val:'\t chmod 0 foo &&\n' span_id:679) (Token id:Id.Lit_Chars val:'\t test_must_fail git clean -f -d)\n' span_id:680) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'nested git work tree' span_id:687))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:691) (Token id:Id.Lit_Chars val:'\trm -fr foo bar baz &&\n' span_id:692) (Token id:Id.Lit_Chars val:'\tmkdir -p foo bar baz/boo &&\n' span_id:693) (Token id:Id.Lit_Chars val:'\t(\n' span_id:694) (Token id:Id.Lit_Chars val:'\t\tcd foo &&\n' span_id:695) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:696) (Token id:Id.Lit_Chars val:'\t\ttest_commit nested hello.world\n' span_id:697) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:698) (Token id:Id.Lit_Chars val:'\t(\n' span_id:699) (Token id:Id.Lit_Chars val:'\t\tcd bar &&\n' span_id:700) (Token id:Id.Lit_Chars val:'\t\t>goodbye.people\n' span_id:701) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:702) (Token id:Id.Lit_Chars val:'\t(\n' span_id:703) (Token id:Id.Lit_Chars val:'\t\tcd baz/boo &&\n' span_id:704) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:705) (Token id: Id.Lit_Chars val: '\t\ttest_commit deeply.nested deeper.world\n' span_id: 706 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:707) (Token id:Id.Lit_Chars val:'\tgit clean -f -d &&\n' span_id:708) (Token id:Id.Lit_Chars val:'\ttest -f foo/.git/index &&\n' span_id:709) (Token id:Id.Lit_Chars val:'\ttest -f foo/hello.world &&\n' span_id:710) (Token id:Id.Lit_Chars val:'\ttest -f baz/boo/.git/index &&\n' span_id:711) (Token id:Id.Lit_Chars val:'\ttest -f baz/boo/deeper.world &&\n' span_id:712) (Token id:Id.Lit_Chars val:'\t! test -d bar\n' span_id:713) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'should clean things that almost look like git but are not' span_id: 720 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:724) (Token id: Id.Lit_Chars val: '\trm -fr almost_git almost_bare_git almost_submodule &&\n' span_id: 725 ) (Token id:Id.Lit_Chars val:'\tmkdir -p almost_git/.git/objects &&\n' span_id:726) (Token id:Id.Lit_Chars val:'\tmkdir -p almost_git/.git/refs &&\n' span_id:727) (Token id:Id.Lit_Chars val:'\tcat >almost_git/.git/HEAD <<-\\EOF &&\n' span_id:728) (Token id:Id.Lit_Chars val:'\tgarbage\n' span_id:729) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:730) (Token id: Id.Lit_Chars val: '\tcp -r almost_git/.git/ almost_bare_git &&\n' span_id: 731 ) (Token id:Id.Lit_Chars val:'\tmkdir almost_submodule/ &&\n' span_id:732) (Token id: Id.Lit_Chars val: '\tcat >almost_submodule/.git <<-\\EOF &&\n' span_id: 733 ) (Token id:Id.Lit_Chars val:'\tgarbage\n' span_id:734) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:735) (Token id:Id.Lit_Chars val:'\ttest_when_finished "rm -rf almost_*" &&\n' span_id:736) (Token id:Id.Lit_Chars val:'\tgit clean -f -d &&\n' span_id:737) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing almost_git &&\n' span_id:738) (Token id: Id.Lit_Chars val: '\ttest_path_is_missing almost_bare_git &&\n' span_id: 739 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing almost_submodule\n' span_id:740) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'should not clean submodules' span_id:747))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:751) (Token id:Id.Lit_Chars val:'\trm -fr repo to_clean sub1 sub2 &&\n' span_id:752) (Token id:Id.Lit_Chars val:'\tmkdir repo to_clean &&\n' span_id:753) (Token id:Id.Lit_Chars val:'\t(\n' span_id:754) (Token id:Id.Lit_Chars val:'\t\tcd repo &&\n' span_id:755) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:756) (Token id:Id.Lit_Chars val:'\t\ttest_commit msg hello.world\n' span_id:757) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:758) (Token id:Id.Lit_Chars val:'\tgit submodule add ./repo/.git sub1 &&\n' span_id:759) (Token id:Id.Lit_Chars val:'\tgit commit -m "sub1" &&\n' span_id:760) (Token id:Id.Lit_Chars val:'\tgit branch before_sub2 &&\n' span_id:761) (Token id: Id.Lit_Chars val: '\tgit submodule add ./repo/.git sub2 &&\n' span_id: 762 ) (Token id:Id.Lit_Chars val:'\tgit commit -m "sub2" &&\n' span_id:763) (Token id:Id.Lit_Chars val:'\tgit checkout before_sub2 &&\n' span_id:764) (Token id:Id.Lit_Chars val:'\t>to_clean/should_clean.this &&\n' span_id:765) (Token id:Id.Lit_Chars val:'\tgit clean -f -d &&\n' span_id:766) (Token id:Id.Lit_Chars val:'\ttest_path_is_file repo/.git/index &&\n' span_id:767) (Token id: Id.Lit_Chars val: '\ttest_path_is_file repo/hello.world &&\n' span_id: 768 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_file sub1/.git &&\n' span_id:769) (Token id: Id.Lit_Chars val: '\ttest_path_is_file sub1/hello.world &&\n' span_id: 770 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_file sub2/.git &&\n' span_id:771) (Token id: Id.Lit_Chars val: '\ttest_path_is_file sub2/hello.world &&\n' span_id: 772 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing to_clean\n' span_id:773) ) } ) (C {(test_expect_success)} {(POSIXPERM) (Id.Lit_Comma ',') (SANITY)} {(SQ (Token id:Id.Lit_Chars val:'should avoid cleaning possible submodules' span_id:784))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:788) (Token id:Id.Lit_Chars val:'\trm -fr to_clean possible_sub1 &&\n' span_id:789) (Token id:Id.Lit_Chars val:'\tmkdir to_clean possible_sub1 &&\n' span_id:790) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -rf possible_sub*" &&\n' span_id: 791 ) (Token id:Id.Lit_Chars val:'\techo "gitdir: foo" >possible_sub1/.git &&\n' span_id:792) (Token id:Id.Lit_Chars val:'\t>possible_sub1/hello.world &&\n' span_id:793) (Token id:Id.Lit_Chars val:'\tchmod 0 possible_sub1/.git &&\n' span_id:794) (Token id:Id.Lit_Chars val:'\t>to_clean/should_clean.this &&\n' span_id:795) (Token id:Id.Lit_Chars val:'\tgit clean -f -d &&\n' span_id:796) (Token id: Id.Lit_Chars val: '\ttest_path_is_file possible_sub1/.git &&\n' span_id: 797 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_file possible_sub1/hello.world &&\n' span_id:798) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing to_clean\n' span_id:799) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'nested (empty) git should be kept' span_id:806))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:810) (Token id:Id.Lit_Chars val:'\trm -fr empty_repo to_clean &&\n' span_id:811) (Token id:Id.Lit_Chars val:'\tgit init empty_repo &&\n' span_id:812) (Token id:Id.Lit_Chars val:'\tmkdir to_clean &&\n' span_id:813) (Token id:Id.Lit_Chars val:'\t>to_clean/should_clean.this &&\n' span_id:814) (Token id:Id.Lit_Chars val:'\tgit clean -f -d &&\n' span_id:815) (Token id:Id.Lit_Chars val:'\ttest_path_is_file empty_repo/.git/HEAD &&\n' span_id:816) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing to_clean\n' span_id:817) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'nested bare repositories should be cleaned' span_id:824))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:828) (Token id:Id.Lit_Chars val:'\trm -fr bare1 bare2 subdir &&\n' span_id:829) (Token id:Id.Lit_Chars val:'\tgit init --bare bare1 &&\n' span_id:830) (Token id:Id.Lit_Chars val:'\tgit clone --local --bare . bare2 &&\n' span_id:831) (Token id:Id.Lit_Chars val:'\tmkdir subdir &&\n' span_id:832) (Token id:Id.Lit_Chars val:'\tcp -r bare2 subdir/bare3 &&\n' span_id:833) (Token id:Id.Lit_Chars val:'\tgit clean -f -d &&\n' span_id:834) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing bare1 &&\n' span_id:835) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing bare2 &&\n' span_id:836) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing subdir\n' span_id:837) ) } ) (C {(test_expect_failure)} { (SQ (Token id: Id.Lit_Chars val: 'nested (empty) bare repositories should be cleaned even when in .git' span_id: 844 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:848) (Token id:Id.Lit_Chars val:'\trm -fr strange_bare &&\n' span_id:849) (Token id:Id.Lit_Chars val:'\tmkdir strange_bare &&\n' span_id:850) (Token id: Id.Lit_Chars val: '\tgit init --bare strange_bare/.git &&\n' span_id: 851 ) (Token id:Id.Lit_Chars val:'\tgit clean -f -d &&\n' span_id:852) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing strange_bare\n' span_id:853) ) } ) (C {(test_expect_failure)} { (SQ (Token id: Id.Lit_Chars val: 'nested (non-empty) bare repositories should be cleaned even when in .git' span_id: 860 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:864) (Token id:Id.Lit_Chars val:'\trm -fr strange_bare &&\n' span_id:865) (Token id:Id.Lit_Chars val:'\tmkdir strange_bare &&\n' span_id:866) (Token id: Id.Lit_Chars val: '\tgit clone --local --bare . strange_bare/.git &&\n' span_id: 867 ) (Token id:Id.Lit_Chars val:'\tgit clean -f -d &&\n' span_id:868) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing strange_bare\n' span_id:869) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'giving path in nested git work tree will remove it' span_id: 876 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:880) (Token id:Id.Lit_Chars val:'\trm -fr repo &&\n' span_id:881) (Token id:Id.Lit_Chars val:'\tmkdir repo &&\n' span_id:882) (Token id:Id.Lit_Chars val:'\t(\n' span_id:883) (Token id:Id.Lit_Chars val:'\t\tcd repo &&\n' span_id:884) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:885) (Token id:Id.Lit_Chars val:'\t\tmkdir -p bar/baz &&\n' span_id:886) (Token id: Id.Lit_Chars val: '\t\ttest_commit msg bar/baz/hello.world\n' span_id: 887 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:888) (Token id:Id.Lit_Chars val:'\tgit clean -f -d repo/bar/baz &&\n' span_id:889) (Token id:Id.Lit_Chars val:'\ttest_path_is_file repo/.git/HEAD &&\n' span_id:890) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir repo/bar/ &&\n' span_id:891) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing repo/bar/baz\n' span_id:892) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'giving path to nested .git will not remove it' span_id:899))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:903) (Token id:Id.Lit_Chars val:'\trm -fr repo &&\n' span_id:904) (Token id:Id.Lit_Chars val:'\tmkdir repo untracked &&\n' span_id:905) (Token id:Id.Lit_Chars val:'\t(\n' span_id:906) (Token id:Id.Lit_Chars val:'\t\tcd repo &&\n' span_id:907) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:908) (Token id:Id.Lit_Chars val:'\t\ttest_commit msg hello.world\n' span_id:909) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:910) (Token id:Id.Lit_Chars val:'\tgit clean -f -d repo/.git &&\n' span_id:911) (Token id:Id.Lit_Chars val:'\ttest_path_is_file repo/.git/HEAD &&\n' span_id:912) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir repo/.git/refs &&\n' span_id:913) (Token id: Id.Lit_Chars val: '\ttest_path_is_dir repo/.git/objects &&\n' span_id: 914 ) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir untracked/\n' span_id:915) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'giving path to nested .git/ will remove contents' span_id: 922 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:926) (Token id:Id.Lit_Chars val:'\trm -fr repo untracked &&\n' span_id:927) (Token id:Id.Lit_Chars val:'\tmkdir repo untracked &&\n' span_id:928) (Token id:Id.Lit_Chars val:'\t(\n' span_id:929) (Token id:Id.Lit_Chars val:'\t\tcd repo &&\n' span_id:930) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:931) (Token id:Id.Lit_Chars val:'\t\ttest_commit msg hello.world\n' span_id:932) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:933) (Token id:Id.Lit_Chars val:'\tgit clean -f -d repo/.git/ &&\n' span_id:934) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir repo/.git &&\n' span_id:935) (Token id:Id.Lit_Chars val:'\ttest_dir_is_empty repo/.git &&\n' span_id:936) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir untracked/\n' span_id:937) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'force removal of nested git work tree' span_id:944))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:948) (Token id:Id.Lit_Chars val:'\trm -fr foo bar baz &&\n' span_id:949) (Token id:Id.Lit_Chars val:'\tmkdir -p foo bar baz/boo &&\n' span_id:950) (Token id:Id.Lit_Chars val:'\t(\n' span_id:951) (Token id:Id.Lit_Chars val:'\t\tcd foo &&\n' span_id:952) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:953) (Token id:Id.Lit_Chars val:'\t\ttest_commit nested hello.world\n' span_id:954) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:955) (Token id:Id.Lit_Chars val:'\t(\n' span_id:956) (Token id:Id.Lit_Chars val:'\t\tcd bar &&\n' span_id:957) (Token id:Id.Lit_Chars val:'\t\t>goodbye.people\n' span_id:958) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:959) (Token id:Id.Lit_Chars val:'\t(\n' span_id:960) (Token id:Id.Lit_Chars val:'\t\tcd baz/boo &&\n' span_id:961) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:962) (Token id: Id.Lit_Chars val: '\t\ttest_commit deeply.nested deeper.world\n' span_id: 963 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:964) (Token id:Id.Lit_Chars val:'\tgit clean -f -f -d &&\n' span_id:965) (Token id:Id.Lit_Chars val:'\t! test -d foo &&\n' span_id:966) (Token id:Id.Lit_Chars val:'\t! test -d bar &&\n' span_id:967) (Token id:Id.Lit_Chars val:'\t! test -d baz\n' span_id:968) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git clean -e' span_id:975))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:979) (Token id:Id.Lit_Chars val:'\trm -fr repo &&\n' span_id:980) (Token id:Id.Lit_Chars val:'\tmkdir repo &&\n' span_id:981) (Token id:Id.Lit_Chars val:'\t(\n' span_id:982) (Token id:Id.Lit_Chars val:'\t\tcd repo &&\n' span_id:983) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:984) (Token id:Id.Lit_Chars val:'\t\ttouch known 1 2 3 &&\n' span_id:985) (Token id:Id.Lit_Chars val:'\t\tgit add known &&\n' span_id:986) (Token id:Id.Lit_Chars val:'\t\tgit clean -f -e 1 -e 2 &&\n' span_id:987) (Token id:Id.Lit_Chars val:'\t\ttest -e 1 &&\n' span_id:988) (Token id:Id.Lit_Chars val:'\t\ttest -e 2 &&\n' span_id:989) (Token id:Id.Lit_Chars val:'\t\t! (test -e 3) &&\n' span_id:990) (Token id:Id.Lit_Chars val:'\t\ttest -e known\n' span_id:991) (Token id:Id.Lit_Chars val:'\t)\n' span_id:992) ) } ) (C {(test_expect_success)} {(SANITY)} { (SQ (Token id: Id.Lit_Chars val: 'git clean -d with an unreadable empty directory' span_id: 1001 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1005) (Token id:Id.Lit_Chars val:'\tmkdir foo &&\n' span_id:1006) (Token id:Id.Lit_Chars val:'\tchmod a= foo &&\n' span_id:1007) (Token id:Id.Lit_Chars val:'\tgit clean -dfx foo &&\n' span_id:1008) (Token id:Id.Lit_Chars val:'\t! test -d foo\n' span_id:1009) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git clean -d respects pathspecs (dir is prefix of pathspec)' span_id: 1016 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1020) (Token id:Id.Lit_Chars val:'\tmkdir -p foo &&\n' span_id:1021) (Token id:Id.Lit_Chars val:'\tmkdir -p foobar &&\n' span_id:1022) (Token id:Id.Lit_Chars val:'\tgit clean -df foobar &&\n' span_id:1023) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir foo &&\n' span_id:1024) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing foobar\n' span_id:1025) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git clean -d respects pathspecs (pathspec is prefix of dir)' span_id: 1032 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1036) (Token id:Id.Lit_Chars val:'\tmkdir -p foo &&\n' span_id:1037) (Token id:Id.Lit_Chars val:'\tmkdir -p foobar &&\n' span_id:1038) (Token id:Id.Lit_Chars val:'\tgit clean -df foo &&\n' span_id:1039) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing foo &&\n' span_id:1040) (Token id:Id.Lit_Chars val:'\ttest_path_is_dir foobar\n' span_id:1041) ) } ) (C {(test_done)}) ] )