(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git svn creates empty directories">)}
          spids: [10]
        )
      ]
      spids: [10]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} {(SQ <"initialize repo">)} 
      {
        (SQ <"\n"> <"\tfor i in a b c d d/e d/e/f \"weird file name\"\n"> <"\tdo\n"> 
          <"\t\tsvn_cmd mkdir -m \"mkdir $i\" \"$svnrepo\"/\"$i\"\n"> <"\tdone\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <clone>)} {(SQ <"git svn clone \"$svnrepo\" cloned">)})
    (C {(test_expect_success)} {(SQ <"empty directories exist">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd cloned &&\n"> 
          <"\t\tfor i in a b c d d/e d/e/f \"weird file name\"\n"> <"\t\tdo\n"> <"\t\t\tif ! test -d \"$i\"\n"> <"\t\t\tthen\n"> 
          <"\t\t\t\techo >&2 \"$i does not exist\"\n"> <"\t\t\t\texit 1\n"> <"\t\t\tfi\n"> <"\t\tdone\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"option automkdirs set to false">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tgit svn init \"$svnrepo\" cloned-no-mkdirs &&\n"> 
          <"\t\tcd cloned-no-mkdirs &&\n"> <"\t\tgit config svn-remote.svn.automkdirs false &&\n"> <"\t\tgit svn fetch &&\n"> 
          <"\t\tfor i in a b c d d/e d/e/f \"weird file name\"\n"> <"\t\tdo\n"> <"\t\t\tif test -d \"$i\"\n"> <"\t\t\tthen\n"> <"\t\t\t\techo >&2 \"$i exists\"\n"> 
          <"\t\t\t\texit 1\n"> <"\t\t\tfi\n"> <"\t\tdone\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"more emptiness">)} 
      {(SQ <"\n"> <"\tsvn_cmd mkdir -m \"bang bang\"  \"$svnrepo\"/\"! !\"\n">)}
    )
    (C {(test_expect_success)} {(SQ <"git svn rebase creates empty directory">)} 
      {(SQ <"\n"> <"\t( cd cloned && git svn rebase ) &&\n"> <"\ttest -d cloned/\"! !\"\n">)}
    )
    (C {(test_expect_success)} {(SQ <"git svn mkdirs recreates empty directories">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd cloned &&\n"> <"\t\trm -r * &&\n"> <"\t\tgit svn mkdirs &&\n"> 
          <"\t\tfor i in a b c d d/e d/e/f \"weird file name\" \"! !\"\n"> <"\t\tdo\n"> <"\t\t\tif ! test -d \"$i\"\n"> <"\t\t\tthen\n"> 
          <"\t\t\t\techo >&2 \"$i does not exist\"\n"> <"\t\t\t\texit 1\n"> <"\t\t\tfi\n"> <"\t\tdone\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"git svn mkdirs -r works">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd cloned &&\n"> <"\t\trm -r * &&\n"> <"\t\tgit svn mkdirs -r7 &&\n"> 
          <"\t\tfor i in a b c d d/e d/e/f \"weird file name\"\n"> <"\t\tdo\n"> <"\t\t\tif ! test -d \"$i\"\n"> <"\t\t\tthen\n"> 
          <"\t\t\t\techo >&2 \"$i does not exist\"\n"> <"\t\t\t\texit 1\n"> <"\t\t\tfi\n"> <"\t\tdone\n"> <"\n"> <"\t\tif test -d \"! !\"\n"> <"\t\tthen\n"> 
          <"\t\t\techo >&2 \"$i should not exist\"\n"> <"\t\t\texit 1\n"> <"\t\tfi\n"> <"\n"> <"\t\tgit svn mkdirs -r8 &&\n"> <"\t\tif ! test -d \"! !\"\n"> 
          <"\t\tthen\n"> <"\t\t\techo >&2 \"$i not exist\"\n"> <"\t\t\texit 1\n"> <"\t\tfi\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"initialize trunk">)} 
      {
        (SQ <"\n"> <"\tfor i in trunk trunk/a trunk/\"weird file name\"\n"> <"\tdo\n"> 
          <"\t\tsvn_cmd mkdir -m \"mkdir $i\" \"$svnrepo\"/\"$i\"\n"> <"\tdone\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"clone trunk">)} {(SQ <"git svn clone -s \"$svnrepo\" trunk">)})
    (C {(test_expect_success)} {(SQ <"empty directories in trunk exist">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd trunk &&\n"> <"\t\tfor i in a \"weird file name\"\n"> <"\t\tdo\n"> 
          <"\t\t\tif ! test -d \"$i\"\n"> <"\t\t\tthen\n"> <"\t\t\t\techo >&2 \"$i does not exist\"\n"> <"\t\t\t\texit 1\n"> <"\t\t\tfi\n"> 
          <"\t\tdone\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"remove a top-level directory from svn">)} 
      {(SQ <"\n"> <"\tsvn_cmd rm -m \"remove d\" \"$svnrepo\"/d\n">)}
    )
    (C {(test_expect_success)} {(SQ <"removed top-level directory does not exist">)} 
      {(SQ <"\n"> <"\tgit svn clone \"$svnrepo\" removed &&\n"> <"\ttest ! -e removed/d\n"> <"\n">)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:unhandled)
          op: Equal
          rhs: {(.git/svn/refs/remotes/git-svn/unhandled.log)}
          spids: [252]
        )
      ]
      spids: [252]
    )
    (C {(test_expect_success)} {(SQ <"git svn gc-ed files work">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd removed &&\n"> <"\t\tgit svn gc &&\n"> 
          <"\t\t: Compress::Zlib may not be available &&\n"> <"\t\tif test -f \"$unhandled\".gz\n"> <"\t\tthen\n"> 
          <"\t\t\tsvn_cmd mkdir -m gz \"$svnrepo\"/gz &&\n"> <"\t\t\tgit reset --hard $(git rev-list HEAD | tail -1) &&\n"> <"\t\t\tgit svn rebase &&\n"> 
          <"\t\t\ttest -f \"$unhandled\".gz &&\n"> <"\t\t\ttest -f \"$unhandled\" &&\n"> <"\t\t\tfor i in a b c \"weird file name\" gz \"! !\"\n"> 
          <"\t\t\tdo\n"> <"\t\t\t\tif ! test -d \"$i\"\n"> <"\t\t\t\tthen\n"> <"\t\t\t\t\techo >&2 \"$i does not exist\"\n"> 
          <"\t\t\t\t\texit 1\n"> <"\t\t\t\tfi\n"> <"\t\t\tdone\n"> <"\t\tfi\n"> <"\t)\n">
        )
      }
    )
    (C {(test_done)})
  ]
)