(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git svn globbing refspecs with prefixed globs">)}
          spids: [3]
        )
      ]
      spids: [3]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} {(SQ <"prepare test refspec prefixed globbing">)} 
      {
        (SQ <"\n"> <"\tcat >expect.end <<EOF\n"> <"the end\n"> <"hi\n"> <"start a new branch\n"> 
          <"initial\n"> <"EOF\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"test refspec prefixed globbing">)} 
      {
        (SQ <"\n"> <"\tmkdir -p trunk/src/a trunk/src/b trunk/doc &&\n"> 
          <"\techo \"hello world\" >trunk/src/a/readme &&\n"> <"\techo \"goodbye world\" >trunk/src/b/readme &&\n"> 
          <"\tsvn_cmd import -m \"initial\" trunk \"$svnrepo\"/trunk &&\n"> <"\tsvn_cmd co \"$svnrepo\" tmp &&\n"> <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\tmkdir branches tags &&\n"> 
          <"\t\tsvn_cmd add branches tags &&\n"> <"\t\tsvn_cmd cp trunk branches/b_start &&\n"> <"\t\tsvn_cmd commit -m \"start a new branch\" &&\n"> 
          <"\t\tsvn_cmd up &&\n"> <"\t\techo \"hi\" >>branches/b_start/src/b/readme &&\n"> 
          <"\t\tpoke branches/b_start/src/b/readme &&\n"> <"\t\techo \"hey\" >>branches/b_start/src/a/readme &&\n"> 
          <"\t\tpoke branches/b_start/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"hi\" &&\n"> <"\t\tsvn_cmd up &&\n"> 
          <"\t\tsvn_cmd cp branches/b_start tags/t_end &&\n"> <"\t\techo \"bye\" >>tags/t_end/src/b/readme &&\n"> <"\t\tpoke tags/t_end/src/b/readme &&\n"> 
          <"\t\techo \"aye\" >>tags/t_end/src/a/readme &&\n"> <"\t\tpoke tags/t_end/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"the end\" &&\n"> 
          <"\t\techo \"byebye\" >>tags/t_end/src/b/readme &&\n"> <"\t\tpoke tags/t_end/src/b/readme &&\n"> <"\t\tsvn_cmd commit -m \"nothing to see here\"\n"> 
          <"\t) &&\n"> <"\tgit config --add svn-remote.svn.url \"$svnrepo\" &&\n"> 
          <"\tgit config --add svn-remote.svn.fetch \\\n"> <"\t\t\t \"trunk/src/a:refs/remotes/trunk\" &&\n"> <"\tgit config --add svn-remote.svn.branches \\\n"> 
          <"\t\t\t \"branches/b_*/src/a:refs/remotes/branches/b_*\" &&\n"> <"\tgit config --add svn-remote.svn.tags\\\n"> 
          <"\t\t\t \"tags/t_*/src/a:refs/remotes/tags/t_*\" &&\n"> <"\tgit svn multi-fetch &&\n"> <"\tgit log --pretty=oneline refs/remotes/tags/t_end | \\\n"> 
          <"\t    sed -e \"s/^.\\{41\\}//\" >output.end &&\n"> <"\ttest_cmp expect.end output.end &&\n"> 
          <"\ttest \"$(git rev-parse refs/remotes/tags/t_end~1)\" = \\\n"> <"\t\t\"$(git rev-parse refs/remotes/branches/b_start)\" &&\n"> 
          <"\ttest \"$(git rev-parse refs/remotes/branches/b_start~2)\" = \\\n"> <"\t\t\"$(git rev-parse refs/remotes/trunk)\" &&\n"> 
          <"\ttest_must_fail git rev-parse refs/remotes/tags/t_end@3\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"prepare test left-hand-side only prefixed globbing">)} 
      {
        (SQ <"\n"> <"\techo try to try >expect.two &&\n"> 
          <"\techo nothing to see here >>expect.two &&\n"> <"\tcat expect.end >>expect.two\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"test left-hand-side only prefixed globbing">)} 
      {
        (SQ <"\n"> <"\tgit config --add svn-remote.two.url \"$svnrepo\" &&\n"> 
          <"\tgit config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&\n"> <"\tgit config --add svn-remote.two.branches \\\n"> 
          <"\t\t\t \"branches/b_*:refs/remotes/two/branches/*\" &&\n"> <"\tgit config --add svn-remote.two.tags \\\n"> <"\t\t\t \"tags/t_*:refs/remotes/two/tags/*\" &&\n"> 
          <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\techo \"try try\" >>tags/t_end/src/b/readme &&\n"> 
          <"\t\tpoke tags/t_end/src/b/readme &&\n"> <"\t\tsvn_cmd commit -m \"try to try\"\n"> <"\t) &&\n"> <"\tgit svn fetch two &&\n"> 
          <"\ttest $(git rev-list refs/remotes/two/tags/t_end | wc -l) -eq 6 &&\n"> <"\ttest $(git rev-list refs/remotes/two/branches/b_start | wc -l) -eq 3 &&\n"> 
          <"\ttest $(git rev-parse refs/remotes/two/branches/b_start~2) = \\\n"> <"\t     $(git rev-parse refs/remotes/two/trunk) &&\n"> 
          <"\ttest $(git rev-parse refs/remotes/two/tags/t_end~3) = \\\n"> <"\t     $(git rev-parse refs/remotes/two/branches/b_start) &&\n"> 
          <"\tgit log --pretty=oneline refs/remotes/two/tags/t_end | \\\n"> <"\t    sed -e \"s/^.\\{41\\}//\" >output.two &&\n"> <"\ttest_cmp expect.two output.two\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"prepare test prefixed globs match just prefix">)} 
      {
        (SQ <"\n"> <"\tcat >expect.three <<EOF\n"> <"Tag commit to t_\n"> <"Branch commit to b_\n"> 
          <"initial\n"> <"EOF\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"test prefixed globs match just prefix">)} 
      {
        (SQ <"\n"> <"\tgit config --add svn-remote.three.url \"$svnrepo\" &&\n"> 
          <"\tgit config --add svn-remote.three.fetch \\\n"> <"\t\t\t trunk:refs/remotes/three/trunk &&\n"> <"\tgit config --add svn-remote.three.branches \\\n"> 
          <"\t\t\t \"branches/b_*:refs/remotes/three/branches/*\" &&\n"> <"\tgit config --add svn-remote.three.tags \\\n"> 
          <"\t\t\t \"tags/t_*:refs/remotes/three/tags/*\" &&\n"> <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\tsvn_cmd cp trunk branches/b_ &&\n"> 
          <"\t\techo \"Branch commit to b_\" >>branches/b_/src/a/readme &&\n"> <"\t\tpoke branches/b_/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"Branch commit to b_\" &&\n"> 
          <"\t\tsvn_cmd up && svn_cmd cp branches/b_ tags/t_ &&\n"> <"\t\techo \"Tag commit to t_\" >>tags/t_/src/a/readme &&\n"> <"\t\tpoke tags/t_/src/a/readme &&\n"> 
          <"\t\tsvn_cmd commit -m \"Tag commit to t_\" &&\n"> <"\t\tsvn_cmd up\n"> <"\t) &&\n"> <"\tgit svn fetch three &&\n"> 
          <"\ttest $(git rev-list refs/remotes/three/branches/b_ | wc -l) -eq 2 &&\n"> <"\ttest $(git rev-list refs/remotes/three/tags/t_ | wc -l) -eq 3 &&\n"> 
          <"\ttest $(git rev-parse refs/remotes/three/branches/b_~1) = \\\n"> <"\t     $(git rev-parse refs/remotes/three/trunk) &&\n"> 
          <"\ttest $(git rev-parse refs/remotes/three/tags/t_~1) = \\\n"> <"\t     $(git rev-parse refs/remotes/three/branches/b_) &&\n"> 
          <"\tgit log --pretty=oneline refs/remotes/three/tags/t_ | \\\n"> <"\t    sed -e \"s/^.\\{41\\}//\" >output.three &&\n"> <"\ttest_cmp expect.three output.three\n"> 
          <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"prepare test disallow prefixed multi-globs">)} 
      {
        (DQ ("\n") ("cat >expect.four <<EOF\n") 
          ("Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/b_*/t/*\n") ("\n") ("EOF\n") ("\t")
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"test disallow prefixed multi-globs">)} 
      {
        (SQ <"\n"> <"\tgit config --add svn-remote.four.url \"$svnrepo\" &&\n"> 
          <"\tgit config --add svn-remote.four.fetch \\\n"> <"\t\t\t trunk:refs/remotes/four/trunk &&\n"> <"\tgit config --add svn-remote.four.branches \\\n"> 
          <"\t\t\t \"branches/b_*/t/*:refs/remotes/four/branches/*\" &&\n"> <"\tgit config --add svn-remote.four.tags \\\n"> 
          <"\t\t\t \"tags/t_*/*:refs/remotes/four/tags/*\" &&\n"> <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\techo \"try try\" >>tags/t_end/src/b/readme &&\n"> 
          <"\t\tpoke tags/t_end/src/b/readme &&\n"> <"\t\tsvn_cmd commit -m \"try to try\"\n"> <"\t) &&\n"> 
          <"\ttest_must_fail git svn fetch four 2>stderr.four &&\n"> <"\ttest_cmp expect.four stderr.four &&\n"> <"\tgit config --unset svn-remote.four.branches &&\n"> 
          <"\tgit config --unset svn-remote.four.tags\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"prepare test globbing in the middle of the word">)} 
      {
        (SQ <"\n"> <"\tcat >expect.five <<EOF\n"> <"Tag commit to fghij\n"> <"Branch commit to abcde\n"> 
          <"initial\n"> <"EOF\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"test globbing in the middle of the word">)} 
      {
        (SQ <"\n"> <"\tgit config --add svn-remote.five.url \"$svnrepo\" &&\n"> 
          <"\tgit config --add svn-remote.five.fetch \\\n"> <"\t\t\t trunk:refs/remotes/five/trunk &&\n"> <"\tgit config --add svn-remote.five.branches \\\n"> 
          <"\t\t\t \"branches/a*e:refs/remotes/five/branches/*\" &&\n"> <"\tgit config --add svn-remote.five.tags \\\n"> <"\t\t\t \"tags/f*j:refs/remotes/five/tags/*\" &&\n"> 
          <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\tsvn_cmd cp trunk branches/abcde &&\n"> 
          <"\t\techo \"Branch commit to abcde\" >>branches/abcde/src/a/readme &&\n"> <"\t\tpoke branches/b_/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"Branch commit to abcde\" &&\n"> 
          <"\t\tsvn_cmd up &&\n"> <"\t\tsvn_cmd cp branches/abcde tags/fghij &&\n"> 
          <"\t\techo \"Tag commit to fghij\" >>tags/fghij/src/a/readme &&\n"> <"\t\tpoke tags/fghij/src/a/readme &&\n"> <"\t\tsvn_cmd commit -m \"Tag commit to fghij\" &&\n"> 
          <"\t\tsvn_cmd up\n"> <"\t) &&\n"> <"\tgit svn fetch five &&\n"> 
          <"\ttest $(git rev-list refs/remotes/five/branches/abcde | wc -l) -eq 2 &&\n"> <"\ttest $(git rev-list refs/remotes/five/tags/fghij | wc -l) -eq 3 &&\n"> 
          <"\ttest $(git rev-parse refs/remotes/five/branches/abcde~1) = \\\n"> <"\t     $(git rev-parse refs/remotes/five/trunk) &&\n"> 
          <"\ttest $(git rev-parse refs/remotes/five/tags/fghij~1) = \\\n"> <"\t     $(git rev-parse refs/remotes/five/branches/abcde) &&\n"> 
          <"\tgit log --pretty=oneline refs/remotes/five/tags/fghij | \\\n"> <"\t    sed -e \"s/^.\\{41\\}//\" >output.five &&\n"> <"\ttest_cmp expect.five output.five\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"prepare test disallow multiple asterisks in one word">)} 
      {
        (DQ ("\n") ("\techo ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
          ("Only one '*' is allowed in a pattern: 'a*c*e'") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" >expect.six &&\n") ("\techo ") 
          (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" >>expect.six\n") ("\t")
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"test disallow multiple asterisks in one word">)} 
      {
        (SQ <"\n"> <"\tgit config --add svn-remote.six.url \"$svnrepo\" &&\n"> 
          <"\tgit config --add svn-remote.six.fetch \\\n"> <"\t\t\t trunk:refs/remotes/six/trunk &&\n"> <"\tgit config --add svn-remote.six.branches \\\n"> 
          <"\t\t\t \"branches/a*c*e:refs/remotes/six/branches/*\" &&\n"> <"\tgit config --add svn-remote.six.tags \\\n"> <"\t\t\t \"tags/f*h*j:refs/remotes/six/tags/*\" &&\n"> 
          <"\t(\n"> <"\t\tcd tmp &&\n"> <"\t\techo \"try try\" >>tags/fghij/src/b/readme &&\n"> 
          <"\t\tpoke tags/fghij/src/b/readme &&\n"> <"\t\tsvn_cmd commit -m \"try to try\"\n"> <"\t) &&\n"> 
          <"\ttest_must_fail git svn fetch six 2>stderr.six &&\n"> <"\ttest_cmp expect.six stderr.six\n"> <"\t">
        )
      }
    )
    (C {(test_done)})
  ]
)