(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git svn metadata migrations from previous versions'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./lib-git-svn.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup old-looking metadata'>)}
        {
          (SQ <'\n'> <'\tcp "$GIT_DIR"/config "$GIT_DIR"/config-old-git-svn &&\n'> 
            <'\tmkdir import &&\n'> <'\t(\n'> <'\t\tcd import &&\n'> 
            <'\t\tfor i in trunk branches/a branches/b tags/0.1 tags/0.2 tags/0.3\n'> <'\t\tdo\n'> <'\t\t\tmkdir -p $i &&\n'> <'\t\t\techo hello >>$i/README ||\n'> <'\t\t\texit 1\n'> 
            <'\t\tdone &&\n'> <'\t\tsvn_cmd import -m test . "$svnrepo"\n'> <'\t) &&\n'> <'\tgit svn init "$svnrepo" &&\n'> 
            <'\tgit svn fetch &&\n'> <'\trm -rf "$GIT_DIR"/svn &&\n'> 
            <'\tgit update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn &&\n'> <'\tgit update-ref refs/heads/svn-HEAD refs/remotes/git-svn &&\n'> 
            <'\tgit update-ref -d refs/remotes/git-svn refs/remotes/git-svn\n'> <'\t'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git-svn-HEAD is a real HEAD'>)}
        {(SQ <'\n'> <'\tgit rev-parse --verify refs/heads/git-svn-HEAD^0\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'svnrepo_escaped='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'svnrepo_escaped='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'svnrepo_escaped='> name:svnrepo_escaped)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <echo>
                        more_env: []
                        words: [{<echo>} {($ Id.VSub_DollarName svnrepo)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <sed>
                        more_env: []
                        words: [{<sed>} {(SQ <'s/ /%20/'>)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'initialize old-style (v0) git svn layout'>)}
        {
          (SQ <'\n'> <'\tmkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info &&\n'> 
            <'\techo "$svnrepo" > "$GIT_DIR"/git-svn/info/url &&\n'> <'\techo "$svnrepo" > "$GIT_DIR"/svn/info/url &&\n'> <'\tgit svn migrate &&\n'> 
            <'\t! test -d "$GIT_DIR"/git-svn &&\n'> <'\tgit rev-parse --verify refs/remotes/git-svn^0 &&\n'> 
            <'\tgit rev-parse --verify refs/remotes/svn^0 &&\n'> <'\ttest "$(git config --get svn-remote.svn.url)" = "$svnrepo_escaped" &&\n'> 
            <'\ttest $(git config --get svn-remote.svn.fetch) = \\\n'> <'\t\t":refs/remotes/git-svn"\n'> <'\t'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'initialize a multi-repository repo'>)}
        {
          (SQ <'\n'> <'\tgit svn init "$svnrepo" -T trunk -t tags -b branches &&\n'> 
            <'\tgit config --get-all svn-remote.svn.fetch > fetch.out &&\n'> <'\tgrep "^trunk:refs/remotes/origin/trunk$" fetch.out &&\n'> 
            <'\ttest -n "$(git config --get svn-remote.svn.branches \\\n'> <'\t\t    "^branches/\\*:refs/remotes/origin/\\*$")" &&\n'> 
            <'\ttest -n "$(git config --get svn-remote.svn.tags \\\n'> <'\t\t    "^tags/\\*:refs/remotes/origin/tags/\\*$")" &&\n'> 
            <'\tgit config --unset svn-remote.svn.branches \\\n'> <'\t                        "^branches/\\*:refs/remotes/origin/\\*$" &&\n'> 
            <'\tgit config --unset svn-remote.svn.tags \\\n'> <'\t                        "^tags/\\*:refs/remotes/origin/tags/\\*$" &&\n'> 
            <'\tgit config --add svn-remote.svn.fetch "branches/a:refs/remotes/origin/a" &&\n'> <'\tgit config --add svn-remote.svn.fetch "branches/b:refs/remotes/origin/b" &&\n'> 
            <'\tfor i in tags/0.1 tags/0.2 tags/0.3\n'> <'\tdo\n'> <'\t\tgit config --add svn-remote.svn.fetch \\\n'> 
            <'\t\t\t$i:refs/remotes/origin/$i || return 1\n'> <'\tdone &&\n'> <'\tgit config --get-all svn-remote.svn.fetch > fetch.out &&\n'> 
            <'\tgrep "^trunk:refs/remotes/origin/trunk$" fetch.out &&\n'> <'\tgrep "^branches/a:refs/remotes/origin/a$" fetch.out &&\n'> 
            <'\tgrep "^branches/b:refs/remotes/origin/b$" fetch.out &&\n'> <'\tgrep "^tags/0\\.1:refs/remotes/origin/tags/0\\.1$" fetch.out &&\n'> 
            <'\tgrep "^tags/0\\.2:refs/remotes/origin/tags/0\\.2$" fetch.out &&\n'> <'\tgrep "^tags/0\\.3:refs/remotes/origin/tags/0\\.3$" fetch.out &&\n'> 
            <'\tgrep "^:refs/remotes/git-svn" fetch.out\n'> <'\t'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'multi-fetch works on partial urls + paths'>)}
        {
          (SQ <'\n'> <'\trefs="trunk a b tags/0.1 tags/0.2 tags/0.3" &&\n'> 
            <'\tgit svn multi-fetch &&\n'> <'\tfor i in $refs\n'> <'\tdo\n'> 
            <'\t\tgit rev-parse --verify refs/remotes/origin/$i^0 || return 1;\n'> <'\tdone >refs.out &&\n'> <'\ttest -z "$(sort <refs.out | uniq -d)" &&\n'> <'\tfor i in $refs\n'> 
            <'\tdo\n'> <'\t\tfor j in $refs\n'> <'\t\tdo\n'> <'\t\t\tgit diff --exit-code refs/remotes/origin/$i \\\n'> 
            <'\t\t\t\t\t     refs/remotes/origin/$j ||\n'> <'\t\t\t\treturn 1\n'> <'\t\tdone\n'> <'\tdone\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'migrate --minimize on old inited layout'>)}
        {
          (SQ <'\n'> <'\tgit config --unset-all svn-remote.svn.fetch &&\n'> 
            <'\tgit config --unset-all svn-remote.svn.url &&\n'> <'\trm -rf "$GIT_DIR"/svn &&\n'> <'\tfor i in $(cat fetch.out)\n'> <'\tdo\n'> 
            <'\t\tpath=$(expr $i : "\\([^:]*\\):.*$")\n'> <'\t\tref=$(expr $i : "[^:]*:\\(refs/remotes/.*\\)$")\n'> 
            <'\t\tif test -z "$ref"; then continue; fi\n'> <'\t\tif test -n "$path"; then path="/$path"; fi\n'> <'\t\tmkdir -p "$GIT_DIR"/svn/$ref/info/ &&\n'> 
            <'\t\techo "$svnrepo"$path >"$GIT_DIR"/svn/$ref/info/url ||\n'> <'\t\treturn 1\n'> <'\tdone &&\n'> <'\tgit svn migrate --minimize &&\n'> 
            <'\ttest -z "$(git config -l | grep "^svn-remote\\.git-svn\\.")" &&\n'> <'\tgit config --get-all svn-remote.svn.fetch > fetch.out &&\n'> 
            <'\tgrep "^trunk:refs/remotes/origin/trunk$" fetch.out &&\n'> <'\tgrep "^branches/a:refs/remotes/origin/a$" fetch.out &&\n'> 
            <'\tgrep "^branches/b:refs/remotes/origin/b$" fetch.out &&\n'> <'\tgrep "^tags/0\\.1:refs/remotes/origin/tags/0\\.1$" fetch.out &&\n'> 
            <'\tgrep "^tags/0\\.2:refs/remotes/origin/tags/0\\.2$" fetch.out &&\n'> <'\tgrep "^tags/0\\.3:refs/remotes/origin/tags/0\\.3$" fetch.out &&\n'> 
            <'\tgrep "^:refs/remotes/git-svn" fetch.out\n'> <'\t'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(DQ <'.rev_db auto-converted to .rev_map.UUID'>)}
        {
          (SQ <'\n'> <'\tgit svn fetch -i trunk &&\n'> 
            <
'\ttest -z "$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db.* 2>/dev/null)" &&\n'
            > <'\texpect="$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_map.*)" &&\n'> 
            <'\ttest -n "$expect" &&\n'> <'\trev_db="$(echo $expect | sed -e "s,_map,_db,")" &&\n'> 
            <'\tconvert_to_rev_db "$expect" "$rev_db" &&\n'> <'\trm -f "$expect" &&\n'> <'\ttest -f "$rev_db" &&\n'> <'\tgit svn fetch -i trunk &&\n'> 
            <
'\ttest -z "$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db.* 2>/dev/null)" &&\n'
            > <'\ttest ! -e "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db &&\n'> <'\ttest -f "$expect"\n'> <'\t'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)