(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git svn clone with percent escapes'>)}
          spids: [13]
        )
      ]
    )
    (C {<.>} {<'./lib-git-svn.sh'>})
    (C {<test_expect_success>} {(SQ <'setup svnrepo'>)} 
      {
        (SQ <'\n'> <'\tmkdir project project/trunk project/branches project/tags &&\n'> 
          <'\techo foo > project/trunk/foo &&\n'> <'\tsvn_cmd import -m "$test_description" project "$svnrepo/pr ject" &&\n'> 
          <'\tsvn_cmd cp -m "branch" "$svnrepo/pr ject/trunk" \\\n'> <'\t  "$svnrepo/pr ject/branches/b" &&\n'> <'\tsvn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \\\n'> 
          <'\t  "$svnrepo/pr ject/tags/v1" &&\n'> <'\trm -rf project &&\n'> <'\tmaybe_start_httpd\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'test clone with percent escapes'>)} 
      {
        (SQ <'\n'> <'\tgit svn clone "$svnrepo/pr%20ject" clone &&\n'> <'\t(\n'> <'\t\tcd clone &&\n'> 
          <'\t\tgit rev-parse refs/remotes/git-svn\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'svn checkout with percent escapes'>)} 
      {
        (SQ <'\n'> <'\tsvn_cmd checkout "$svnrepo/pr%20ject" svn.percent &&\n'> 
          <'\tsvn_cmd checkout "$svnrepo/pr%20ject/trunk" svn.percent.trunk\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'svn checkout with space'>)} 
      {
        (SQ <'\n'> <'\tsvn_cmd checkout "$svnrepo/pr ject" svn.space &&\n'> 
          <'\tsvn_cmd checkout "$svnrepo/pr ject/trunk" svn.space.trunk\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'test clone trunk with percent escapes and minimize-url'>)} 
      {
        (SQ <'\n'> <'\tgit svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize &&\n'> 
          <'\t(\n'> <'\t\tcd minimize &&\n'> <'\t\tgit rev-parse refs/remotes/git-svn\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'test clone trunk with percent escapes'>)} 
      {
        (SQ <'\n'> <'\tgit svn clone "$svnrepo/pr%20ject/trunk" trunk &&\n'> <'\t(\n'> 
          <'\t\tcd trunk &&\n'> <'\t\tgit rev-parse refs/remotes/git-svn\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'test clone --stdlayout with percent escapes'>)} 
      {
        (SQ <'\n'> <'\tgit svn clone --stdlayout "$svnrepo/pr%20ject" percent &&\n'> <'\t(\n'> 
          <'\t\tcd percent &&\n'> <'\t\tgit rev-parse refs/remotes/origin/trunk^0 &&\n'> 
          <'\t\tgit rev-parse refs/remotes/origin/b^0 &&\n'> <'\t\tgit rev-parse refs/remotes/origin/tags/v1^0\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'test clone -s with unescaped space'>)} 
      {
        (SQ <'\n'> <'\tgit svn clone -s "$svnrepo/pr ject" --prefix origin/ space &&\n'> <'\t(\n'> 
          <'\t\tcd space &&\n'> <'\t\tgit rev-parse refs/remotes/origin/trunk^0 &&\n'> 
          <'\t\tgit rev-parse refs/remotes/origin/b^0 &&\n'> <'\t\tgit rev-parse refs/remotes/origin/tags/v1^0\n'> <'\t)\n'>
        )
      }
    )
    (C {<stop_httpd>})
    (C {<test_done>})
  ]
)