(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git svn multiple branch and tag paths in the svn repo'>)}
          spids: [13]
        )
      ]
    )
    (C {<.>} {<'./lib-git-svn.sh'>})
    (C {<test_expect_success>} {(SQ <'setup svnrepo'>)} 
      {
        (SQ <'\n'> <'\tmkdir\tproject \\\n'> <'\t\tproject/trunk \\\n'> <'\t\tproject/b_one \\\n'> 
          <'\t\tproject/b_two \\\n'> <'\t\tproject/tags_A \\\n'> <'\t\tproject/tags_B &&\n'> <'\techo 1 > project/trunk/a.file &&\n'> 
          <'\tsvn_cmd import -m "$test_description" project "$svnrepo/project" &&\n'> <'\trm -rf project &&\n'> <'\tsvn_cmd cp -m "Branch 1" "$svnrepo/project/trunk" \\\n'> 
          <'\t\t\t\t "$svnrepo/project/b_one/first" &&\n'> <'\tsvn_cmd cp -m "Tag 1" "$svnrepo/project/trunk" \\\n'> 
          <'\t\t\t      "$svnrepo/project/tags_A/1.0" &&\n'> <'\tsvn_cmd co "$svnrepo/project" svn_project &&\n'> <'\t( cd svn_project &&\n'> 
          <'\t\techo 2 > trunk/a.file &&\n'> <'\t\tsvn_cmd ci -m "Change 1" trunk/a.file &&\n'> 
          <'\t\tsvn_cmd cp -m "Branch 2" "$svnrepo/project/trunk" \\\n'> <'\t\t\t\t\t "$svnrepo/project/b_one/second" &&\n'> 
          <'\t\tsvn_cmd cp -m "Tag 2" "$svnrepo/project/trunk" \\\n'> <'\t\t\t\t      "$svnrepo/project/tags_A/2.0" &&\n'> <'\t\techo 3 > trunk/a.file &&\n'> 
          <'\t\tsvn_cmd ci -m "Change 2" trunk/a.file &&\n'> <'\t\tsvn_cmd cp -m "Branch 3" "$svnrepo/project/trunk" \\\n'> 
          <'\t\t\t\t\t "$svnrepo/project/b_two/1" &&\n'> <'\t\tsvn_cmd cp -m "Tag 3" "$svnrepo/project/trunk" \\\n'> 
          <'\t\t\t\t      "$svnrepo/project/tags_A/3.0" &&\n'> <'\t\techo 4 > trunk/a.file &&\n'> <'\t\tsvn_cmd ci -m "Change 3" trunk/a.file &&\n'> 
          <'\t\tsvn_cmd cp -m "Branch 4" "$svnrepo/project/trunk" \\\n'> <'\t\t\t\t\t "$svnrepo/project/b_two/2" &&\n'> 
          <'\t\tsvn_cmd cp -m "Tag 4" "$svnrepo/project/trunk" \\\n'> <'\t\t\t\t      "$svnrepo/project/tags_A/4.0" &&\n'> <'\t\tsvn_cmd up &&\n'> 
          <'\t\techo 5 > b_one/first/a.file &&\n'> <'\t\tsvn_cmd ci -m "Change 4" b_one/first/a.file &&\n'> 
          <'\t\tsvn_cmd cp -m "Tag 5" "$svnrepo/project/b_one/first" \\\n'> <'\t\t\t\t      "$svnrepo/project/tags_B/v5" &&\n'> <'\t\techo 6 > b_one/second/a.file &&\n'> 
          <'\t\tsvn_cmd ci -m "Change 5" b_one/second/a.file &&\n'> <'\t\tsvn_cmd cp -m "Tag 6" "$svnrepo/project/b_one/second" \\\n'> 
          <'\t\t\t\t      "$svnrepo/project/tags_B/v6" &&\n'> <'\t\techo 7 > b_two/1/a.file &&\n'> <'\t\tsvn_cmd ci -m "Change 6" b_two/1/a.file &&\n'> 
          <'\t\tsvn_cmd cp -m "Tag 7" "$svnrepo/project/b_two/1" \\\n'> <'\t\t\t\t      "$svnrepo/project/tags_B/v7" &&\n'> <'\t\techo 8 > b_two/2/a.file &&\n'> 
          <'\t\tsvn_cmd ci -m "Change 7" b_two/2/a.file &&\n'> <'\t\tsvn_cmd cp -m "Tag 8" "$svnrepo/project/b_two/2" \\\n'> 
          <'\t\t\t\t      "$svnrepo/project/tags_B/v8"\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'clone multiple branch and tag paths'>)} 
      {
        (SQ <'\n'> <'\tgit svn clone -T trunk \\\n'> <'\t\t      -b b_one/* --branches b_two/* \\\n'> 
          <'\t\t      -t tags_A/* --tags tags_B \\\n'> <'\t\t      "$svnrepo/project" git_project &&\n'> <'\t( cd git_project &&\n'> 
          <'\t\tgit rev-parse refs/remotes/origin/first &&\n'> <'\t\tgit rev-parse refs/remotes/origin/second &&\n'> <'\t\tgit rev-parse refs/remotes/origin/1 &&\n'> 
          <'\t\tgit rev-parse refs/remotes/origin/2 &&\n'> <'\t\tgit rev-parse refs/remotes/origin/tags/1.0 &&\n'> 
          <'\t\tgit rev-parse refs/remotes/origin/tags/2.0 &&\n'> <'\t\tgit rev-parse refs/remotes/origin/tags/3.0 &&\n'> 
          <'\t\tgit rev-parse refs/remotes/origin/tags/4.0 &&\n'> <'\t\tgit rev-parse refs/remotes/origin/tags/v5 &&\n'> 
          <'\t\tgit rev-parse refs/remotes/origin/tags/v6 &&\n'> <'\t\tgit rev-parse refs/remotes/origin/tags/v7 &&\n'> 
          <'\t\tgit rev-parse refs/remotes/origin/tags/v8\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'Multiple branch or tag paths require -d'>)} 
      {
        (SQ <'\n'> <'\t( cd git_project &&\n'> 
          <'\t\ttest_must_fail git svn branch -m "No new branch" Nope &&\n'> <'\t\ttest_must_fail git svn tag -m "No new tag" Tagless &&\n'> 
          <'\t\ttest_must_fail git rev-parse refs/remotes/origin/Nope &&\n'> <'\t\ttest_must_fail git rev-parse refs/remotes/origin/tags/Tagless\n'> <'\t) &&\n'> 
          <'\t( cd svn_project &&\n'> <'\t\tsvn_cmd up &&\n'> <'\t\ttest_must_fail test -d b_one/Nope &&\n'> 
          <'\t\ttest_must_fail test -d b_two/Nope &&\n'> <'\t\ttest_must_fail test -d tags_A/Tagless &&\n'> <'\t\ttest_must_fail test -d tags_B/Tagless\n'> 
          <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'create new branches and tags'>)} 
      {
        (SQ <'\n'> <'\t( cd git_project &&\n'> 
          <'\t\tgit svn branch -m "New branch 1" -d b_one New1 ) &&\n'> <'\t( cd svn_project &&\n'> <'\t\tsvn_cmd up && test -e b_one/New1/a.file ) &&\n'> <'\n'> 
          <'\t( cd git_project &&\n'> <'\t\tgit svn branch -m "New branch 2" -d b_two New2 ) &&\n'> <'\t( cd svn_project &&\n'> 
          <'\t\tsvn_cmd up && test -e b_two/New2/a.file ) &&\n'> <'\n'> <'\t( cd git_project &&\n'> <'\t\tgit svn branch -t -m "New tag 1" -d tags_A Tag1 ) &&\n'> 
          <'\t( cd svn_project &&\n'> <'\t\tsvn_cmd up && test -e tags_A/Tag1/a.file ) &&\n'> <'\n'> <'\t( cd git_project &&\n'> 
          <'\t\tgit svn tag -m "New tag 2" -d tags_B Tag2 ) &&\n'> <'\t( cd svn_project &&\n'> <'\t\tsvn_cmd up && test -e tags_B/Tag2/a.file )\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)