(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: 
            {
              (SQ 
                <
'git svn creates empty directories, calls git gc, makes sure they are still empty'
                >
              )
            }
          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 <'git svn gc runs'>)} 
      {(SQ <'\n'> <'\t(\n'> <'\t\tcd cloned &&\n'> <'\t\tgit svn gc\n'> <'\t)\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git svn mkdirs recreates empty directories after git svn gc'>)} 
      {
        (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_done)})
  ]
)