(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, calls git gc, makes sure they are still empty'
                  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:'git svn gc runs' 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\tgit svn gc\n' span_id:56) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:57)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'git svn mkdirs recreates empty directories after git svn gc'
            span_id: 64
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:68) (Token id:Id.Lit_Chars val:'\t(\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\t\tcd cloned &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\trm -r * &&\n' span_id:71) 
          (Token id:Id.Lit_Chars val:'\t\tgit svn mkdirs &&\n' span_id:72) (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:73) 
          (Token id:Id.Lit_Chars val:'\t\tdo\n' span_id:74) (Token id:Id.Lit_Chars val:'\t\t\tif ! test -d "$i"\n' span_id:75) 
          (Token id:Id.Lit_Chars val:'\t\t\tthen\n' span_id:76) (Token id:Id.Lit_Chars val:'\t\t\t\techo >&2 "$i does not exist"\n' span_id:77) 
          (Token id:Id.Lit_Chars val:'\t\t\t\texit 1\n' span_id:78) (Token id:Id.Lit_Chars val:'\t\t\tfi\n' span_id:79) 
          (Token id:Id.Lit_Chars val:'\t\tdone\n' span_id:80) (Token id:Id.Lit_Chars val:'\t)\n' span_id:81)
        )
      }
    )
    (C {(test_done)})
  ]
)