(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git svn reset clears memoized caches">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:svn_ver)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(svn)} {(--version)} {(--quiet)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [25 31]
                )
              )
            }
          spids: [23]
        )
      ]
      spids: [23]
    )
    (Case
      to_match: {($ VSub_Name "$svn_ver")}
      arms: [
        (case_arm
          pat_list: [
            {(0.) (Lit_Other "*")}
            {(1.) (Lit_Other "[") (0-4) (Lit_Other "]") (.) (Lit_Other "*")}
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip_all)
                  op: Equal
                  rhs: {(DQ ("skipping git-svn test - SVN too old (") ($ VSub_Name "$svn_ver") (")"))}
                  spids: [54]
                )
              ]
              spids: [54]
            )
            (C {(test_done)})
          ]
          spids: [40 51 65 -1]
        )
      ]
      spids: [34 38 67]
    )
    (C {(test_expect_success)} {(SQ <"initialize source svn repo">)} 
      {
        (SQ <"\n"> <"\tsvn_cmd mkdir -m \"create trunk\" \"$svnrepo\"/trunk &&\n"> 
          <"\tsvn_cmd mkdir -m \"create branches\" \"$svnrepo/branches\" &&\n"> <"\tsvn_cmd co \"$svnrepo\"/trunk \"$SVN_TREE\" &&\n"> <"\t(\n"> <"\t\tcd \"$SVN_TREE\" &&\n"> 
          <"\t\ttouch foo &&\n"> <"\t\tsvn_cmd add foo &&\n"> <"\t\tsvn_cmd commit -m \"a\" &&\n"> 
          <"\t\tsvn_cmd cp -m branch \"$svnrepo\"/trunk \"$svnrepo\"/branches/branch1 &&\n"> <"\t\tsvn_cmd switch \"$svnrepo\"/branches/branch1 &&\n"> <"\t\ttouch bar &&\n"> 
          <"\t\tsvn_cmd add bar &&\n"> <"\t\tsvn_cmd commit -m b &&\n"> <"\t\tsvn_cmd switch \"$svnrepo\"/trunk &&\n"> <"\t\ttouch baz &&\n"> 
          <"\t\tsvn_cmd add baz &&\n"> <"\t\tsvn_cmd commit -m c &&\n"> <"\t\tsvn_cmd up &&\n"> 
          <"\t\tsvn_cmd merge \"$svnrepo\"/branches/branch1 &&\n"> <"\t\tsvn_cmd commit -m \"m\"\n"> <"\t) &&\n"> <"\trm -rf \"$SVN_TREE\"\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"fetch to merge-base (a)">)} 
      {(SQ <"\n"> <"\tgit svn init -s \"$svnrepo\" &&\n"> <"\tgit svn fetch --revision BASE:3\n">)}
    )
    (C {(test_expect_success)} {(SQ <"rebase looses SVN merge (m)">)} 
      {
        (SQ <"\n"> <"\tgit svn rebase &&\n"> <"\tgit svn fetch &&\n"> 
          <"\ttest 1 = $(git cat-file -p master|grep parent|wc -l)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"reset and fetch gets the SVN merge (m) correctly">)} 
      {
        (SQ <"\n"> <"\tgit svn reset -r 3 &&\n"> <"\tgit reset --hard origin/trunk &&\n"> 
          <"\tgit svn fetch &&\n"> <"\ttest 2 = $(git cat-file -p origin/trunk|grep parent|wc -l)\n">
        )
      }
    )
    (C {(test_done)})
  ]
)