(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 clone with percent escapes' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup svnrepo' span_id:26))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:30) 
          (Token
            id: Id.Lit_Chars
            val: '\tmkdir project project/trunk project/branches project/tags &&\n'
            span_id: 31
          ) (Token id:Id.Lit_Chars val:'\techo foo > project/trunk/foo &&\n' span_id:32) 
          (Token
            id: Id.Lit_Chars
            val: '\tsvn_cmd import -m "$test_description" project "$svnrepo/pr ject" &&\n'
            span_id: 33
          ) (Token id:Id.Lit_Chars val:'\tsvn_cmd cp -m "branch" "$svnrepo/pr ject/trunk" \\\n' span_id:34) 
          (Token id:Id.Lit_Chars val:'\t  "$svnrepo/pr ject/branches/b" &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tsvn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \\\n' span_id:36) 
          (Token id:Id.Lit_Chars val:'\t  "$svnrepo/pr ject/tags/v1" &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\trm -rf project &&\n' span_id:38) 
          (Token id:Id.Lit_Chars val:'\tmaybe_start_httpd\n' span_id:39)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'test clone with percent escapes' span_id:46))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:50) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit svn clone "$svnrepo/pr%20ject" clone &&\n'
            span_id: 51
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:52) 
          (Token id:Id.Lit_Chars val:'\t\tcd clone &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\t\tgit rev-parse refs/remotes/git-svn\n' span_id:54) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:55)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'svn checkout with percent escapes' span_id:66))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:70) 
          (Token
            id: Id.Lit_Chars
            val: '\tsvn_cmd checkout "$svnrepo/pr%20ject" svn.percent &&\n'
            span_id: 71
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tsvn_cmd checkout "$svnrepo/pr%20ject/trunk" svn.percent.trunk\n'
            span_id: 72
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'svn checkout with space' span_id:79))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:83) 
          (Token
            id: Id.Lit_Chars
            val: '\tsvn_cmd checkout "$svnrepo/pr ject" svn.space &&\n'
            span_id: 84
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tsvn_cmd checkout "$svnrepo/pr ject/trunk" svn.space.trunk\n'
            span_id: 85
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'test clone trunk with percent escapes and minimize-url'
            span_id: 92
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:96) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize &&\n'
            span_id: 97
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:98) 
          (Token id:Id.Lit_Chars val:'\t\tcd minimize &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\t\tgit rev-parse refs/remotes/git-svn\n' span_id:100) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:101)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'test clone trunk with percent escapes' span_id:108))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:112) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit svn clone "$svnrepo/pr%20ject/trunk" trunk &&\n'
            span_id: 113
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:114) 
          (Token id:Id.Lit_Chars val:'\t\tcd trunk &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\t\tgit rev-parse refs/remotes/git-svn\n' span_id:116) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:117)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'test clone --stdlayout with percent escapes' span_id:124))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:128) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit svn clone --stdlayout "$svnrepo/pr%20ject" percent &&\n'
            span_id: 129
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:130) 
          (Token id:Id.Lit_Chars val:'\t\tcd percent &&\n' span_id:131) (Token id:Id.Lit_Chars val:'\t\tgit rev-parse refs/remotes/origin/trunk^0 &&\n' span_id:132) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit rev-parse refs/remotes/origin/b^0 &&\n'
            span_id: 133
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-parse refs/remotes/origin/tags/v1^0\n' span_id:134) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:135)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'test clone -s with unescaped space' span_id:142))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:146) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit svn clone -s "$svnrepo/pr ject" --prefix origin/ space &&\n'
            span_id: 147
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:148) 
          (Token id:Id.Lit_Chars val:'\t\tcd space &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\t\tgit rev-parse refs/remotes/origin/trunk^0 &&\n' span_id:150) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit rev-parse refs/remotes/origin/b^0 &&\n'
            span_id: 151
          ) (Token id:Id.Lit_Chars val:'\t\tgit rev-parse refs/remotes/origin/tags/v1^0\n' span_id:152) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:153)
        )
      }
    )
    (C {(stop_httpd)})
    (C {(test_done)})
  ]
)