(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 svn creates empty directories' span_id:12))} spids: [10] ) ] ) (C {(.)} {(./lib-git-svn.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'initialize repo' span_id:23))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:27) (Token id: Id.Lit_Chars val: '\tfor i in a b c d d/e d/e/f "weird file name"\n' span_id: 28 ) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:29) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i"\n' span_id: 30 ) (Token id:Id.Lit_Chars val:'\tdone\n' span_id:31) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:clone span_id:38))} {(SQ (Token id:Id.Lit_Chars val:'git svn clone "$svnrepo" cloned' span_id:42))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'empty directories exist' span_id:49))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:53) (Token id:Id.Lit_Chars val:'\t(\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\tcd cloned &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\tfor i in a b c d d/e d/e/f "weird file name"\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\tdo\n' span_id:57) (Token id:Id.Lit_Chars val:'\t\t\tif ! test -d "$i"\n' span_id:58) (Token id:Id.Lit_Chars val:'\t\t\tthen\n' span_id:59) (Token id:Id.Lit_Chars val:'\t\t\t\techo >&2 "$i does not exist"\n' span_id:60) (Token id:Id.Lit_Chars val:'\t\t\t\texit 1\n' span_id:61) (Token id:Id.Lit_Chars val:'\t\t\tfi\n' span_id:62) (Token id:Id.Lit_Chars val:'\t\tdone\n' span_id:63) (Token id:Id.Lit_Chars val:'\t)\n' span_id:64) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'option automkdirs set to false' span_id:71))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id:Id.Lit_Chars val:'\t(\n' span_id:76) (Token id: Id.Lit_Chars val: '\t\tgit svn init "$svnrepo" cloned-no-mkdirs &&\n' span_id: 77 ) (Token id:Id.Lit_Chars val:'\t\tcd cloned-no-mkdirs &&\n' span_id:78) (Token id: Id.Lit_Chars val: '\t\tgit config svn-remote.svn.automkdirs false &&\n' span_id: 79 ) (Token id:Id.Lit_Chars val:'\t\tgit svn fetch &&\n' span_id:80) (Token id: Id.Lit_Chars val: '\t\tfor i in a b c d d/e d/e/f "weird file name"\n' span_id: 81 ) (Token id:Id.Lit_Chars val:'\t\tdo\n' span_id:82) (Token id:Id.Lit_Chars val:'\t\t\tif test -d "$i"\n' span_id:83) (Token id:Id.Lit_Chars val:'\t\t\tthen\n' span_id:84) (Token id:Id.Lit_Chars val:'\t\t\t\techo >&2 "$i exists"\n' span_id:85) (Token id:Id.Lit_Chars val:'\t\t\t\texit 1\n' span_id:86) (Token id:Id.Lit_Chars val:'\t\t\tfi\n' span_id:87) (Token id:Id.Lit_Chars val:'\t\tdone\n' span_id:88) (Token id:Id.Lit_Chars val:'\t)\n' span_id:89) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'more emptiness' span_id:96))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:100) (Token id: Id.Lit_Chars val: '\tsvn_cmd mkdir -m "bang bang" "$svnrepo"/"! !"\n' span_id: 101 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git svn rebase creates empty directory' span_id:108))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:112) (Token id:Id.Lit_Chars val:'\t( cd cloned && git svn rebase ) &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\ttest -d cloned/"! !"\n' span_id:114) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git svn mkdirs recreates empty directories' span_id:121))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:125) (Token id:Id.Lit_Chars val:'\t(\n' span_id:126) (Token id:Id.Lit_Chars val:'\t\tcd cloned &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\t\trm -r * &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\t\tgit svn mkdirs &&\n' span_id:129) (Token id: Id.Lit_Chars val: '\t\tfor i in a b c d d/e d/e/f "weird file name" "! !"\n' span_id: 130 ) (Token id:Id.Lit_Chars val:'\t\tdo\n' span_id:131) (Token id:Id.Lit_Chars val:'\t\t\tif ! test -d "$i"\n' span_id:132) (Token id:Id.Lit_Chars val:'\t\t\tthen\n' span_id:133) (Token id:Id.Lit_Chars val:'\t\t\t\techo >&2 "$i does not exist"\n' span_id:134) (Token id:Id.Lit_Chars val:'\t\t\t\texit 1\n' span_id:135) (Token id:Id.Lit_Chars val:'\t\t\tfi\n' span_id:136) (Token id:Id.Lit_Chars val:'\t\tdone\n' span_id:137) (Token id:Id.Lit_Chars val:'\t)\n' span_id:138) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git svn mkdirs -r works' span_id:145))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:149) (Token id:Id.Lit_Chars val:'\t(\n' span_id:150) (Token id:Id.Lit_Chars val:'\t\tcd cloned &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\t\trm -r * &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\t\tgit svn mkdirs -r7 &&\n' span_id:153) (Token id: Id.Lit_Chars val: '\t\tfor i in a b c d d/e d/e/f "weird file name"\n' span_id: 154 ) (Token id:Id.Lit_Chars val:'\t\tdo\n' span_id:155) (Token id:Id.Lit_Chars val:'\t\t\tif ! test -d "$i"\n' span_id:156) (Token id:Id.Lit_Chars val:'\t\t\tthen\n' span_id:157) (Token id:Id.Lit_Chars val:'\t\t\t\techo >&2 "$i does not exist"\n' span_id:158) (Token id:Id.Lit_Chars val:'\t\t\t\texit 1\n' span_id:159) (Token id:Id.Lit_Chars val:'\t\t\tfi\n' span_id:160) (Token id:Id.Lit_Chars val:'\t\tdone\n' span_id:161) (Token id:Id.Lit_Chars val:'\n' span_id:162) (Token id:Id.Lit_Chars val:'\t\tif test -d "! !"\n' span_id:163) (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:164) (Token id:Id.Lit_Chars val:'\t\t\techo >&2 "$i should not exist"\n' span_id:165) (Token id:Id.Lit_Chars val:'\t\t\texit 1\n' span_id:166) (Token id:Id.Lit_Chars val:'\t\tfi\n' span_id:167) (Token id:Id.Lit_Chars val:'\n' span_id:168) (Token id:Id.Lit_Chars val:'\t\tgit svn mkdirs -r8 &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\t\tif ! test -d "! !"\n' span_id:170) (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:171) (Token id:Id.Lit_Chars val:'\t\t\techo >&2 "$i not exist"\n' span_id:172) (Token id:Id.Lit_Chars val:'\t\t\texit 1\n' span_id:173) (Token id:Id.Lit_Chars val:'\t\tfi\n' span_id:174) (Token id:Id.Lit_Chars val:'\t)\n' span_id:175) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'initialize trunk' span_id:182))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:186) (Token id: Id.Lit_Chars val: '\tfor i in trunk trunk/a trunk/"weird file name"\n' span_id: 187 ) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:188) (Token id: Id.Lit_Chars val: '\t\tsvn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i"\n' span_id: 189 ) (Token id:Id.Lit_Chars val:'\tdone\n' span_id:190) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'clone trunk' span_id:197))} {(SQ (Token id:Id.Lit_Chars val:'git svn clone -s "$svnrepo" trunk' span_id:201))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'empty directories in trunk exist' span_id:208))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:212) (Token id:Id.Lit_Chars val:'\t(\n' span_id:213) (Token id:Id.Lit_Chars val:'\t\tcd trunk &&\n' span_id:214) (Token id:Id.Lit_Chars val:'\t\tfor i in a "weird file name"\n' span_id:215) (Token id:Id.Lit_Chars val:'\t\tdo\n' span_id:216) (Token id:Id.Lit_Chars val:'\t\t\tif ! test -d "$i"\n' span_id:217) (Token id:Id.Lit_Chars val:'\t\t\tthen\n' span_id:218) (Token id:Id.Lit_Chars val:'\t\t\t\techo >&2 "$i does not exist"\n' span_id:219) (Token id:Id.Lit_Chars val:'\t\t\t\texit 1\n' span_id:220) (Token id:Id.Lit_Chars val:'\t\t\tfi\n' span_id:221) (Token id:Id.Lit_Chars val:'\t\tdone\n' span_id:222) (Token id:Id.Lit_Chars val:'\t)\n' span_id:223) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'remove a top-level directory from svn' span_id:230))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:234) (Token id: Id.Lit_Chars val: '\tsvn_cmd rm -m "remove d" "$svnrepo"/d\n' span_id: 235 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'removed top-level directory does not exist' span_id:242))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:246) (Token id:Id.Lit_Chars val:'\tgit svn clone "$svnrepo" removed &&\n' span_id:247) (Token id:Id.Lit_Chars val:'\ttest ! -e removed/d\n' span_id:248) (Token id:Id.Lit_Chars val:'\n' span_id:249) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unhandled) op: assign_op.Equal rhs: {(.git/svn/refs/remotes/git-svn/unhandled.log)} spids: [252] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git svn gc-ed files work' span_id:258))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:262) (Token id:Id.Lit_Chars val:'\t(\n' span_id:263) (Token id:Id.Lit_Chars val:'\t\tcd removed &&\n' span_id:264) (Token id:Id.Lit_Chars val:'\t\tgit svn gc &&\n' span_id:265) (Token id:Id.Lit_Chars val:'\t\t: Compress::Zlib may not be available &&\n' span_id:266) (Token id:Id.Lit_Chars val:'\t\tif test -f "$unhandled".gz\n' span_id:267) (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:268) (Token id: Id.Lit_Chars val: '\t\t\tsvn_cmd mkdir -m gz "$svnrepo"/gz &&\n' span_id: 269 ) (Token id:Id.Lit_Chars val:'\t\t\tgit reset --hard $(git rev-list HEAD | tail -1) &&\n' span_id:270) (Token id:Id.Lit_Chars val:'\t\t\tgit svn rebase &&\n' span_id:271) (Token id:Id.Lit_Chars val:'\t\t\ttest -f "$unhandled".gz &&\n' span_id:272) (Token id:Id.Lit_Chars val:'\t\t\ttest -f "$unhandled" &&\n' span_id:273) (Token id:Id.Lit_Chars val:'\t\t\tfor i in a b c "weird file name" gz "! !"\n' span_id:274) (Token id:Id.Lit_Chars val:'\t\t\tdo\n' span_id:275) (Token id:Id.Lit_Chars val:'\t\t\t\tif ! test -d "$i"\n' span_id:276) (Token id:Id.Lit_Chars val:'\t\t\t\tthen\n' span_id:277) (Token id:Id.Lit_Chars val:'\t\t\t\t\techo >&2 "$i does not exist"\n' span_id:278) (Token id:Id.Lit_Chars val:'\t\t\t\t\texit 1\n' span_id:279) (Token id:Id.Lit_Chars val:'\t\t\t\tfi\n' span_id:280) (Token id:Id.Lit_Chars val:'\t\t\tdone\n' span_id:281) (Token id:Id.Lit_Chars val:'\t\tfi\n' span_id:282) (Token id:Id.Lit_Chars val:'\t)\n' span_id:283) ) } ) (C {(test_done)}) ] )