(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 remote porcelain-ish'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <setup_repository>
      name: setup_repository
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <mkdir>
                  more_env: []
                  words: [{<mkdir>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <cd>
                          more_env: []
                          words: [{<cd>} {(DQ ($ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<init>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.Redir_Great '>'>
                          more_env: []
                          words: []
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<file>}
                            )
                          ]
                          do_fork: F
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<add>} {<file>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test_tick>
                          more_env: []
                          words: [{<test_tick>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<commit>} {<-m>} {(DQ <Initial>)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<checkout>} {<-b>} {<side>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.Redir_Great '>'>
                          more_env: []
                          words: []
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<Id.KW_Elif elif>}
                            )
                          ]
                          do_fork: F
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<add>} {<Id.KW_Elif elif>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test_tick>
                          more_env: []
                          words: [{<test_tick>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<commit>} {<-m>} {(DQ <Second>)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [{<git>} {<checkout>} {<master>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                        <Id.Op_DAmp _>
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <tokens_match>
      name: tokens_match
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <tr>
                      more_env: []
                      words: [{<tr>} {(SQ <' '>)} {(SQ <'\\012'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sort>
                      more_env: []
                      words: [{<sort>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sed>
                      more_env: []
                      words: [{<sed>} {<-e>} {(SQ <'/^$/d'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<expect>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                )
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ ($ Id.VSub_Number 2))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <tr>
                      more_env: []
                      words: [{<tr>} {(SQ <' '>)} {(SQ <'\\012'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sort>
                      more_env: []
                      words: [{<sort>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sed>
                      more_env: []
                      words: [{<sed>} {<-e>} {(SQ <'/^$/d'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<actual>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <test_cmp>
                  more_env: []
                  words: [{<test_cmp>} {<expect>} {<actual>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <check_remote_track>
      name: check_remote_track
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'actual='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'actual='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'actual='> name:actual)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <git>
                                more_env: []
                                words: [{<git>} {<remote>} {<show>} {(DQ ($ Id.VSub_Number 1))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [{<sed>} {<-ne>} {(SQ <'s|^    \\(.*\\) tracked$|\\1|p'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tokens_match>
                  more_env: []
                  words: [
                    {<tokens_match>}
                    {(DQ ($ Id.VSub_Star '*'))}
                    {(DQ ($ Id.VSub_DollarName actual))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <check_tracking_branch>
      name: check_tracking_branch
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'f='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'f='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'r='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'r='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <git>
                                    more_env: []
                                    words: [{<git>} {<for-each-ref>} {(DQ <'--format=%(refname)'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {<-ne>}
                                      {(DQ <'s|^refs/remotes/'> ($ Id.VSub_Number 1) <'/||p'>)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tokens_match>
                  more_env: []
                  words: [{<tokens_match>} {(DQ ($ Id.VSub_Star '*'))} {(DQ ($ Id.VSub_DollarName r))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<setup>}
        {
          (SQ <'\n'> <'\tsetup_repository one &&\n'> <'\tsetup_repository two &&\n'> <'\t(\n'> 
            <'\t\tcd two &&\n'> <'\t\tgit branch another\n'> <'\t) &&\n'> <'\tgit clone one test\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add remote whose URL agrees with url.<...>.insteadOf'>)}
        {
          (SQ <'\n'> <'\ttest_config url.git@host.com:team/repo.git.insteadOf myremote &&\n'> 
            <'\tgit remote add myremote git@host.com:team/repo.git\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<C_LOCALE_OUTPUT>}
        {(SQ <'remote information for the origin'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> <'\t\ttokens_match origin "$(git remote)" &&\n'> 
            <'\t\tcheck_remote_track origin master side &&\n'> <'\t\tcheck_tracking_branch origin HEAD master side\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add another remote'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> <'\t\tgit remote add -f second ../two &&\n'> 
            <'\t\ttokens_match "origin second" "$(git remote)" &&\n'> <'\t\tcheck_tracking_branch second master side another &&\n'> 
            <'\t\tgit for-each-ref "--format=%(refname)" refs/remotes |\n'> <'\t\tsed -e "/^refs\\/remotes\\/origin\\//d" \\\n'> 
            <'\t\t    -e "/^refs\\/remotes\\/second\\//d" >actual &&\n'> <'\t\t>expect &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<C_LOCALE_OUTPUT>}
        {(SQ <'check remote-tracking'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> <'\t\tcheck_remote_track origin master side &&\n'> 
            <'\t\tcheck_remote_track second master side another\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote forces tracking branches'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> <'\t\tcase $(git config remote.second.fetch) in\n'> 
            <'\t\t+*) true ;;\n'> <'\t\t *) false ;;\n'> <'\t\tesac\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remove remote'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> 
            <'\t\tgit symbolic-ref refs/remotes/second/HEAD refs/remotes/second/master &&\n'> <'\t\tgit remote rm second\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<C_LOCALE_OUTPUT>}
        {(SQ <'remove remote'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> <'\t\ttokens_match origin "$(git remote)" &&\n'> 
            <'\t\tcheck_remote_track origin master side &&\n'> <'\t\tgit for-each-ref "--format=%(refname)" refs/remotes |\n'> 
            <'\t\tsed -e "/^refs\\/remotes\\/origin\\//d" >actual &&\n'> <'\t\t>expect &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remove remote protects local branches'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> <'\t\tcat >expect1 <<-\\EOF &&\n'> 
            <'\t\tNote: A branch outside the refs/remotes/ hierarchy was not removed;\n'> <'\t\tto delete it, use:\n'> <'\t\t  git branch -d master\n'> <'\t\tEOF\n'> 
            <'\t\tcat >expect2 <<-\\EOF &&\n'> <'\t\tNote: Some branches outside the refs/remotes/ hierarchy were not removed;\n'> 
            <'\t\tto delete them, use:\n'> <'\t\t  git branch -d foobranch\n'> <'\t\t  git branch -d master\n'> <'\t\tEOF\n'> 
            <'\t\tgit tag footag &&\n'> <'\t\tgit config --add remote.oops.fetch "+refs/*:refs/*" &&\n'> 
            <'\t\tgit remote remove oops 2>actual1 &&\n'> <'\t\tgit branch foobranch &&\n'> <'\t\tgit config --add remote.oops.fetch "+refs/*:refs/*" &&\n'> 
            <'\t\tgit remote rm oops 2>actual2 &&\n'> <'\t\tgit branch -d foobranch &&\n'> <'\t\tgit tag -d footag &&\n'> 
            <'\t\ttest_i18ncmp expect1 actual1 &&\n'> <'\t\ttest_i18ncmp expect2 actual2\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remove errors out early when deleting non-existent branch'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> 
            <'\t\techo "fatal: No such remote: foo" >expect &&\n'> <'\t\ttest_must_fail git remote rm foo 2>actual &&\n'> <'\t\ttest_i18ncmp expect actual\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rename errors out early when deleting non-existent branch'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> 
            <'\t\techo "fatal: No such remote: foo" >expect &&\n'> <'\t\ttest_must_fail git remote rename foo bar 2>actual &&\n'> <'\t\ttest_i18ncmp expect actual\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add existing foreign_vcs remote'>)}
        {
          (SQ <'\n'> <'\ttest_config remote.foo.vcs bar &&\n'> 
            <'\techo "fatal: remote foo already exists." >expect &&\n'> <'\ttest_must_fail git remote add foo bar 2>actual &&\n'> <'\ttest_i18ncmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add existing foreign_vcs remote'>)}
        {
          (SQ <'\n'> <'\ttest_config remote.foo.vcs bar &&\n'> 
            <'\ttest_config remote.bar.vcs bar &&\n'> <'\techo "fatal: remote bar already exists." >expect &&\n'> 
            <'\ttest_must_fail git remote rename foo bar 2>actual &&\n'> <'\ttest_i18ncmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'* remote origin\n'>
                <'  Fetch URL: '>
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <pwd>
                      more_env: []
                      words: [{<pwd>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
                <'/one\n'>
                <'  Push  URL: '>
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <pwd>
                      more_env: []
                      words: [{<pwd>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
                <'/one\n'>
                <'  HEAD branch: master\n'>
                <'  Remote branches:\n'>
                <'    master new (next fetch will store in remotes/origin)\n'>
                <'    side   tracked\n'>
                <'  Local branches configured for \'git pull\':\n'>
                <'    ahead    merges with remote master\n'>
                <'    master   merges with remote master\n'>
                <'    octopus  merges with remote topic-a\n'>
                <'                and with remote topic-b\n'>
                <'                and with remote topic-c\n'>
                <'    rebase  rebases onto remote master\n'>
                <'  Local refs configured for \'git push\':\n'>
                <'    master pushes to master   (local out of date)\n'>
                <'    master pushes to upstream (create)\n'>
                <'* remote two\n'>
                <'  Fetch URL: ../two\n'>
                <'  Push  URL: ../three\n'>
                <'  HEAD branch: master\n'>
                <'  Local refs configured for \'git push\':\n'>
                <'    ahead  forces to master  (fast-forwardable)\n'>
                <'    master pushes to another (up to date)\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <show>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> 
            <'\t\tgit config --add remote.origin.fetch refs/heads/master:refs/heads/upstream &&\n'> <'\t\tgit fetch &&\n'> <'\t\tgit checkout -b ahead origin/master &&\n'> <'\t\techo 1 >>file &&\n'> 
            <'\t\ttest_tick &&\n'> <'\t\tgit commit -m update file &&\n'> <'\t\tgit checkout master &&\n'> 
            <'\t\tgit branch --track octopus origin/master &&\n'> <'\t\tgit branch --track rebase origin/master &&\n'> <'\t\tgit branch -d -r origin/master &&\n'> 
            <'\t\tgit config --add remote.two.url ../two &&\n'> <'\t\tgit config --add remote.two.pushurl ../three &&\n'> 
            <'\t\tgit config branch.rebase.rebase true &&\n'> <'\t\tgit config branch.octopus.merge "topic-a topic-b topic-c" &&\n'> <'\t\t(\n'> 
            <'\t\t\tcd ../one &&\n'> <'\t\t\techo 1 >file &&\n'> <'\t\t\ttest_tick &&\n'> <'\t\t\tgit commit -m update file\n'> 
            <'\t\t) &&\n'> <'\t\tgit config --add remote.origin.push : &&\n'> 
            <'\t\tgit config --add remote.origin.push refs/heads/master:refs/heads/upstream &&\n'> <'\t\tgit config --add remote.origin.push +refs/tags/lastbackup &&\n'> 
            <'\t\tgit config --add remote.two.push +refs/heads/ahead:refs/heads/master &&\n'> <'\t\tgit config --add remote.two.push refs/heads/master:refs/heads/another &&\n'> 
            <'\t\tgit remote show origin two >output &&\n'> <'\t\tgit branch -d rebase octopus &&\n'> <'\t\ttest_i18ncmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'* remote origin\n'>
                <'  Fetch URL: '>
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <pwd>
                      more_env: []
                      words: [{<pwd>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
                <'/one\n'>
                <'  Push  URL: '>
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <pwd>
                      more_env: []
                      words: [{<pwd>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
                <'/one\n'>
                <'  HEAD branch: (not queried)\n'>
                <'  Remote branches: (status not queried)\n'>
                <'    master\n'>
                <'    side\n'>
                <'  Local branches configured for \'git pull\':\n'>
                <'    ahead  merges with remote master\n'>
                <'    master merges with remote master\n'>
                <'  Local refs configured for \'git push\' (status not queried):\n'>
                <'    (matching)           pushes to (matching)\n'>
                <'    refs/heads/master    pushes to refs/heads/upstream\n'>
                <'    refs/tags/lastbackup forces to refs/tags/lastbackup\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'show -n'>)}
        {
          (SQ <'\n'> <'\tmv one one.unreachable &&\n'> <'\t(\n'> <'\t\tcd test &&\n'> 
            <'\t\tgit remote show -n origin >output &&\n'> <'\t\tmv ../one.unreachable ../one &&\n'> <'\t\ttest_i18ncmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <prune>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tgit branch -m side side2\n'> <'\t) &&\n'> 
            <'\t(\n'> <'\t\tcd test &&\n'> <'\t\tgit fetch origin &&\n'> <'\t\tgit remote prune origin &&\n'> 
            <'\t\tgit rev-parse refs/remotes/origin/side2 &&\n'> <'\t\ttest_must_fail git rev-parse refs/remotes/origin/side\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'set-head --delete'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> 
            <'\t\tgit symbolic-ref refs/remotes/origin/HEAD &&\n'> <'\t\tgit remote set-head --delete origin &&\n'> 
            <'\t\ttest_must_fail git symbolic-ref refs/remotes/origin/HEAD\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'set-head --auto'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> <'\t\tgit remote set-head --auto origin &&\n'> 
            <'\t\techo refs/remotes/origin/master >expect &&\n'> <'\t\tgit symbolic-ref refs/remotes/origin/HEAD >output &&\n'> <'\t\ttest_cmp expect output\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'set-head --auto has no problem w/multiple HEADs'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> 
            <'\t\tgit fetch two "refs/heads/*:refs/remotes/two/*" &&\n'> <'\t\tgit remote set-head --auto two >output 2>&1 &&\n'> 
            <'\t\techo "two/HEAD set to master" >expect &&\n'> <'\t\ttest_i18ncmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'refs/remotes/origin/side2\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'set-head explicit'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd test &&\n'> <'\t\tgit remote set-head origin side2 &&\n'> 
            <'\t\tgit symbolic-ref refs/remotes/origin/HEAD >output &&\n'> <'\t\tgit remote set-head origin master &&\n'> <'\t\ttest_cmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'Pruning origin\n'>
                <'URL: '>
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <pwd>
                      more_env: []
                      words: [{<pwd>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
                <'/one\n'>
                <' * [would prune] origin/side2\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'prune --dry-run'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tgit branch -m side2 side) &&\n'> <'\t(\n'> 
            <'\t\tcd test &&\n'> <'\t\tgit remote prune --dry-run origin >output &&\n'> 
            <'\t\tgit rev-parse refs/remotes/origin/side2 &&\n'> <'\t\ttest_must_fail git rev-parse refs/remotes/origin/side &&\n'> <'\t(\n'> <'\t\tcd ../one &&\n'> 
            <'\t\tgit branch -m side side2) &&\n'> <'\t\ttest_i18ncmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add --mirror && prune'>)}
        {
          (SQ <'\n'> <'\tmkdir mirror &&\n'> <'\t(\n'> <'\t\tcd mirror &&\n'> 
            <'\t\tgit init --bare &&\n'> <'\t\tgit remote add --mirror -f origin ../one\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd one &&\n'> 
            <'\t\tgit branch -m side2 side\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd mirror &&\n'> <'\t\tgit rev-parse --verify refs/heads/side2 &&\n'> 
            <'\t\ttest_must_fail git rev-parse --verify refs/heads/side &&\n'> <'\t\tgit fetch origin &&\n'> <'\t\tgit remote prune origin &&\n'> 
            <'\t\ttest_must_fail git rev-parse --verify refs/heads/side2 &&\n'> <'\t\tgit rev-parse --verify refs/heads/side\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add --mirror=fetch'>)}
        {
          (SQ <'\n'> <'\tmkdir mirror-fetch &&\n'> <'\tgit init mirror-fetch/parent &&\n'> <'\t(\n'> 
            <'\t\tcd mirror-fetch/parent &&\n'> <'\t\ttest_commit one\n'> <'\t) &&\n'> <'\tgit init --bare mirror-fetch/child &&\n'> <'\t(\n'> 
            <'\t\tcd mirror-fetch/child &&\n'> <'\t\tgit remote add --mirror=fetch -f parent ../parent\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch mirrors act as mirrors during fetch'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd mirror-fetch/parent &&\n'> <'\t\tgit branch new &&\n'> 
            <'\t\tgit branch -m master renamed\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd mirror-fetch/child &&\n'> <'\t\tgit fetch parent &&\n'> 
            <'\t\tgit rev-parse --verify refs/heads/new &&\n'> <'\t\tgit rev-parse --verify refs/heads/renamed\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch mirrors can prune'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd mirror-fetch/child &&\n'> <'\t\tgit remote prune parent &&\n'> 
            <'\t\ttest_must_fail git rev-parse --verify refs/heads/master\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch mirrors do not act as mirrors during push'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd mirror-fetch/parent &&\n'> <'\t\tgit checkout HEAD^0\n'> 
            <'\t) &&\n'> <'\t(\n'> <'\t\tcd mirror-fetch/child &&\n'> <'\t\tgit branch -m renamed renamed2 &&\n'> 
            <'\t\tgit push parent :\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd mirror-fetch/parent &&\n'> <'\t\tgit rev-parse --verify renamed &&\n'> 
            <'\t\ttest_must_fail git rev-parse --verify refs/heads/renamed2\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add fetch mirror with specific branches'>)}
        {
          (SQ <'\n'> <'\tgit init --bare mirror-fetch/track &&\n'> <'\t(\n'> 
            <'\t\tcd mirror-fetch/track &&\n'> <'\t\tgit remote add --mirror=fetch -t heads/new parent ../parent\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch mirror respects specific branches'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd mirror-fetch/track &&\n'> <'\t\tgit fetch parent &&\n'> 
            <'\t\tgit rev-parse --verify refs/heads/new &&\n'> <'\t\ttest_must_fail git rev-parse --verify refs/heads/renamed\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add --mirror=push'>)}
        {
          (SQ <'\n'> <'\tmkdir mirror-push &&\n'> <'\tgit init --bare mirror-push/public &&\n'> 
            <'\tgit init mirror-push/private &&\n'> <'\t(\n'> <'\t\tcd mirror-push/private &&\n'> <'\t\ttest_commit one &&\n'> 
            <'\t\tgit remote add --mirror=push public ../public\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push mirrors act as mirrors during push'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd mirror-push/private &&\n'> <'\t\tgit branch new &&\n'> 
            <'\t\tgit branch -m master renamed &&\n'> <'\t\tgit push public\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd mirror-push/private &&\n'> 
            <'\t\tgit rev-parse --verify refs/heads/new &&\n'> <'\t\tgit rev-parse --verify refs/heads/renamed &&\n'> 
            <'\t\ttest_must_fail git rev-parse --verify refs/heads/master\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push mirrors do not act as mirrors during fetch'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd mirror-push/public &&\n'> 
            <'\t\tgit branch -m renamed renamed2 &&\n'> <'\t\tgit symbolic-ref HEAD refs/heads/renamed2\n'> <'\t) &&\n'> <'\t(\n'> 
            <'\t\tcd mirror-push/private &&\n'> <'\t\tgit fetch public &&\n'> <'\t\tgit rev-parse --verify refs/heads/renamed &&\n'> 
            <'\t\ttest_must_fail git rev-parse --verify refs/heads/renamed2\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push mirrors do not allow you to specify refs'>)}
        {
          (SQ <'\n'> <'\tgit init mirror-push/track &&\n'> <'\t(\n'> <'\t\tcd mirror-push/track &&\n'> 
            <'\t\ttest_must_fail git remote add --mirror=push -t new public ../public\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add alt && prune'>)}
        {
          (SQ <'\n'> <'\tmkdir alttst &&\n'> <'\t(\n'> <'\t\tcd alttst &&\n'> <'\t\tgit init &&\n'> 
            <'\t\tgit remote add -f origin ../one &&\n'> <'\t\tgit config remote.alt.url ../one &&\n'> 
            <'\t\tgit config remote.alt.fetch "+refs/heads/*:refs/remotes/origin/*"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tgit branch -m side side2\n'> <'\t) &&\n'> <'\t(\n'> 
            <'\t\tcd alttst &&\n'> <'\t\tgit rev-parse --verify refs/remotes/origin/side &&\n'> 
            <'\t\ttest_must_fail git rev-parse --verify refs/remotes/origin/side2 &&\n'> <'\t\tgit fetch alt &&\n'> <'\t\tgit remote prune alt &&\n'> 
            <'\t\ttest_must_fail git rev-parse --verify refs/remotes/origin/side &&\n'> <'\t\tgit rev-parse --verify refs/remotes/origin/side2\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'some-tag\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add with reachable tags (default)'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\t>foobar &&\n'> <'\t\tgit add foobar &&\n'> 
            <'\t\tgit commit -m "Foobar" &&\n'> <'\t\tgit tag -a -m "Foobar tag" foobar-tag &&\n'> <'\t\tgit reset --hard HEAD~1 &&\n'> 
            <'\t\tgit tag -a -m "Some tag" some-tag\n'> <'\t) &&\n'> <'\tmkdir add-tags &&\n'> <'\t(\n'> <'\t\tcd add-tags &&\n'> <'\t\tgit init &&\n'> 
            <'\t\tgit remote add -f origin ../one &&\n'> <'\t\tgit tag -l some-tag >../test/output &&\n'> <'\t\tgit tag -l foobar-tag >>../test/output &&\n'> 
            <'\t\ttest_must_fail git config remote.origin.tagopt\n'> <'\t) &&\n'> <'\ttest_cmp test/expect test/output\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'some-tag\n'> <'foobar-tag\n'> <'--tags\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add --tags'>)}
        {
          (SQ <'\n'> <'\trm -rf add-tags &&\n'> <'\t(\n'> <'\t\tmkdir add-tags &&\n'> 
            <'\t\tcd add-tags &&\n'> <'\t\tgit init &&\n'> <'\t\tgit remote add -f --tags origin ../one &&\n'> 
            <'\t\tgit tag -l some-tag >../test/output &&\n'> <'\t\tgit tag -l foobar-tag >>../test/output &&\n'> 
            <'\t\tgit config remote.origin.tagopt >>../test/output\n'> <'\t) &&\n'> <'\ttest_cmp test/expect test/output\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'--no-tags\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add --no-tags'>)}
        {
          (SQ <'\n'> <'\trm -rf add-tags &&\n'> <'\t(\n'> <'\t\tmkdir add-no-tags &&\n'> 
            <'\t\tcd add-no-tags &&\n'> <'\t\tgit init &&\n'> <'\t\tgit remote add -f --no-tags origin ../one &&\n'> 
            <'\t\tgit tag -l some-tag >../test/output &&\n'> <'\t\tgit tag -l foobar-tag >../test/output &&\n'> 
            <'\t\tgit config remote.origin.tagopt >>../test/output\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tgit tag -d some-tag foobar-tag\n'> <'\t) &&\n'> 
            <'\ttest_cmp test/expect test/output\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'reject --no-no-tags'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd add-no-tags &&\n'> 
            <'\t\ttest_must_fail git remote add -f --no-no-tags neworigin ../one\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'one/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'  apis/master\n'>
                <'  apis/side\n'>
                <'  drosophila/another\n'>
                <'  drosophila/master\n'>
                <'  drosophila/side\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <update>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tgit remote add drosophila ../two &&\n'> 
            <'\t\tgit remote add apis ../mirror &&\n'> <'\t\tgit remote update &&\n'> <'\t\tgit branch -r >output &&\n'> <'\t\ttest_cmp expect output\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'one/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'  drosophila/another\n'>
                <'  drosophila/master\n'>
                <'  drosophila/side\n'>
                <'  manduca/master\n'>
                <'  manduca/side\n'>
                <'  megaloprepus/master\n'>
                <'  megaloprepus/side\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'update with arguments'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tfor b in $(git branch -r)\n'> <'\t\tdo\n'> 
            <'\t\tgit branch -r -d $b || exit 1\n'> <'\t\tdone &&\n'> <'\t\tgit remote add manduca ../mirror &&\n'> 
            <'\t\tgit remote add megaloprepus ../mirror &&\n'> <'\t\tgit config remotes.phobaeticus "drosophila megaloprepus" &&\n'> 
            <'\t\tgit config remotes.titanus manduca &&\n'> <'\t\tgit remote update phobaeticus titanus &&\n'> <'\t\tgit branch -r >output &&\n'> 
            <'\t\ttest_cmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'update --prune'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tgit branch -m side2 side3\n'> <'\t) &&\n'> 
            <'\t(\n'> <'\t\tcd test &&\n'> <'\t\tgit remote update --prune &&\n'> <'\t\t(\n'> <'\t\t\tcd ../one &&\n'> 
            <'\t\t\tgit branch -m side3 side2\n'> <'\t\t) &&\n'> <'\t\tgit rev-parse refs/remotes/origin/side3 &&\n'> 
            <'\t\ttest_must_fail git rev-parse refs/remotes/origin/side2\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'one/expect'>})
        (Redir
          op: <Id.Redir_DLessDash '<<-'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'  apis/master\n'>
                <'  apis/side\n'>
                <'  manduca/master\n'>
                <'  manduca/side\n'>
                <'  megaloprepus/master\n'>
                <'  megaloprepus/side\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'update default'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tfor b in $(git branch -r)\n'> <'\t\tdo\n'> 
            <'\t\tgit branch -r -d $b || exit 1\n'> <'\t\tdone &&\n'> <'\t\tgit config remote.drosophila.skipDefaultUpdate true &&\n'> 
            <'\t\tgit remote update default &&\n'> <'\t\tgit branch -r >output &&\n'> <'\t\ttest_cmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'one/expect'>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'  drosophila/another\n'>
                <'  drosophila/master\n'>
                <'  drosophila/side\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'update default (overridden, with funny whitespace)'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tfor b in $(git branch -r)\n'> <'\t\tdo\n'> 
            <'\t\tgit branch -r -d $b || exit 1\n'> <'\t\tdone &&\n'> <'\t\tgit config remotes.default "$(printf "\\t drosophila  \\n")" &&\n'> 
            <'\t\tgit remote update default &&\n'> <'\t\tgit branch -r >output &&\n'> <'\t\ttest_cmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'update (with remotes.default defined)'>)}
        {
          (SQ <'\n'> <'\t(\n'> <'\t\tcd one &&\n'> <'\t\tfor b in $(git branch -r)\n'> <'\t\tdo\n'> 
            <'\t\tgit branch -r -d $b || exit 1\n'> <'\t\tdone &&\n'> <'\t\tgit config remotes.default "drosophila" &&\n'> <'\t\tgit remote update &&\n'> 
            <'\t\tgit branch -r >output &&\n'> <'\t\ttest_cmp expect output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'"remote show" does not show symbolic refs'>)}
        {
          (SQ <'\n'> <'\tgit clone one three &&\n'> <'\t(\n'> <'\t\tcd three &&\n'> 
            <'\t\tgit remote show origin >output &&\n'> <'\t\t! grep "^ *HEAD$" < output &&\n'> <'\t\t! grep -i stale < output\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'reject adding remote with an invalid name'>)}
        {(SQ <'\n'> <'\ttest_must_fail git remote add some:url desired-name\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rename a remote'>)}
        {
          (SQ <'\n'> <'\tgit clone one four &&\n'> <'\t(\n'> <'\t\tcd four &&\n'> 
            <'\t\tgit remote rename origin upstream &&\n'> <'\t\trmdir .git/refs/remotes/origin &&\n'> 
            <
'\t\ttest "$(git symbolic-ref refs/remotes/upstream/HEAD)" = "refs/remotes/upstream/master" &&\n'
            > <'\t\ttest "$(git rev-parse upstream/master)" = "$(git rev-parse master)" &&\n'> 
            <
'\t\ttest "$(git config remote.upstream.fetch)" = "+refs/heads/*:refs/remotes/upstream/*" &&\n'
            > <'\t\ttest "$(git config branch.master.remote)" = "upstream"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rename does not update a non-default fetch refspec'>)}
        {
          (SQ <'\n'> <'\tgit clone one four.one &&\n'> <'\t(\n'> <'\t\tcd four.one &&\n'> 
            <'\t\tgit config remote.origin.fetch +refs/heads/*:refs/heads/origin/* &&\n'> <'\t\tgit remote rename origin upstream &&\n'> 
            <
'\t\ttest "$(git config remote.upstream.fetch)" = "+refs/heads/*:refs/heads/origin/*" &&\n'
            > <'\t\tgit rev-parse -q origin/master\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rename a remote with name part of fetch spec'>)}
        {
          (SQ <'\n'> <'\tgit clone one four.two &&\n'> <'\t(\n'> <'\t\tcd four.two &&\n'> 
            <'\t\tgit remote rename origin remote &&\n'> <'\t\tgit remote rename remote upstream &&\n'> 
            <
'\t\ttest "$(git config remote.upstream.fetch)" = "+refs/heads/*:refs/remotes/upstream/*"\n'
            > <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rename a remote with name prefix of other remote'>)}
        {
          (SQ <'\n'> <'\tgit clone one four.three &&\n'> <'\t(\n'> <'\t\tcd four.three &&\n'> 
            <'\t\tgit remote add o git://example.com/repo.git &&\n'> <'\t\tgit remote rename o upstream &&\n'> 
            <'\t\ttest "$(git rev-parse origin/master)" = "$(git rev-parse master)"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<remotes_origin>})
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'URL: '>
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <pwd>
                      more_env: []
                      words: [{<pwd>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
                <'/one\n'>
                <'Push: refs/heads/master:refs/heads/upstream\n'>
                <'Push: refs/heads/next:refs/heads/upstream2\n'>
                <'Pull: refs/heads/master:refs/heads/origin\n'>
                <'Pull: refs/heads/next:refs/heads/origin2\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'migrate a remote from named file in $GIT_DIR/remotes'>)}
        {
          (SQ <'\n'> <'\tgit clone one five &&\n'> <'\torigin_url=$(pwd)/one &&\n'> <'\t(\n'> 
            <'\t\tcd five &&\n'> <'\t\tgit remote remove origin &&\n'> <'\t\tmkdir -p .git/remotes &&\n'> 
            <'\t\tcat ../remotes_origin >.git/remotes/origin &&\n'> <'\t\tgit remote rename origin origin &&\n'> <'\t\ttest_path_is_missing .git/remotes/origin &&\n'> 
            <'\t\ttest "$(git config remote.origin.url)" = "$origin_url" &&\n'> <'\t\tcat >push_expected <<-\\EOF &&\n'> <'\t\trefs/heads/master:refs/heads/upstream\n'> 
            <'\t\trefs/heads/next:refs/heads/upstream2\n'> <'\t\tEOF\n'> <'\t\tcat >fetch_expected <<-\\EOF &&\n'> <'\t\trefs/heads/master:refs/heads/origin\n'> 
            <'\t\trefs/heads/next:refs/heads/origin2\n'> <'\t\tEOF\n'> <'\t\tgit config --get-all remote.origin.push >push_actual &&\n'> 
            <'\t\tgit config --get-all remote.origin.fetch >fetch_actual &&\n'> <'\t\ttest_cmp push_expected push_actual &&\n'> <'\t\ttest_cmp fetch_expected fetch_actual\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'migrate a remote from named file in $GIT_DIR/branches'>)}
        {
          (SQ <'\n'> <'\tgit clone one six &&\n'> <'\torigin_url=$(pwd)/one &&\n'> <'\t(\n'> 
            <'\t\tcd six &&\n'> <'\t\tgit remote rm origin &&\n'> <'\t\techo "$origin_url" >.git/branches/origin &&\n'> 
            <'\t\tgit remote rename origin origin &&\n'> <'\t\ttest_path_is_missing .git/branches/origin &&\n'> 
            <'\t\ttest "$(git config remote.origin.url)" = "$origin_url" &&\n'> <'\t\ttest "$(git config remote.origin.fetch)" = "refs/heads/master:refs/heads/origin" &&\n'> 
            <'\t\ttest "$(git config remote.origin.push)" = "HEAD:refs/heads/master"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'migrate a remote from named file in $GIT_DIR/branches (2)'>)}
        {
          (SQ <'\n'> <'\tgit clone one seven &&\n'> <'\t(\n'> <'\t\tcd seven &&\n'> 
            <'\t\tgit remote rm origin &&\n'> <'\t\techo "quux#foom" > .git/branches/origin &&\n'> <'\t\tgit remote rename origin origin &&\n'> 
            <'\t\ttest_path_is_missing .git/branches/origin &&\n'> <'\t\ttest "$(git config remote.origin.url)" = "quux" &&\n'> 
            <'\t\ttest "$(git config remote.origin.fetch)" = "refs/heads/foom:refs/heads/origin"\n'> <'\t\ttest "$(git config remote.origin.push)" = "HEAD:refs/heads/foom"\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote prune to cause a dangling symref'>)}
        {
          (SQ <'\n'> <'\tgit clone one eight &&\n'> <'\t(\n'> <'\t\tcd one &&\n'> 
            <'\t\tgit checkout side2 &&\n'> <'\t\tgit branch -D master\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd eight &&\n'> 
            <'\t\tgit remote prune origin\n'> <'\t) >err 2>&1 &&\n'> <'\ttest_i18ngrep "has become dangling" err &&\n'> <'\n'> 
            <'\t: And the dangling symref will not cause other annoying errors &&\n'> <'\t(\n'> <'\t\tcd eight &&\n'> <'\t\tgit branch -a\n'> <'\t) 2>err &&\n'> 
            <'\t! grep "points nowhere" err &&\n'> <'\t(\n'> <'\t\tcd eight &&\n'> <'\t\ttest_must_fail git branch nomore origin\n'> <'\t) 2>err &&\n'> 
            <'\tgrep "dangling symref" err\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'show empty remote'>)}
        {
          (SQ <'\n'> <'\ttest_create_repo empty &&\n'> <'\tgit clone empty empty-clone &&\n'> <'\t(\n'> 
            <'\t\tcd empty-clone &&\n'> <'\t\tgit remote show origin\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-branches requires a remote'>)}
        {
          (SQ <'\n'> <'\ttest_must_fail git remote set-branches &&\n'> 
            <'\ttest_must_fail git remote set-branches --add\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-branches'>)}
        {
          (SQ <'\n'> <'\techo "+refs/heads/*:refs/remotes/scratch/*" >expect.initial &&\n'> 
            <'\tsort <<-\\EOF >expect.add &&\n'> <'\t+refs/heads/*:refs/remotes/scratch/*\n'> <'\t+refs/heads/other:refs/remotes/scratch/other\n'> 
            <'\tEOF\n'> <'\tsort <<-\\EOF >expect.replace &&\n'> <'\t+refs/heads/maint:refs/remotes/scratch/maint\n'> 
            <'\t+refs/heads/master:refs/remotes/scratch/master\n'> <'\t+refs/heads/next:refs/remotes/scratch/next\n'> <'\tEOF\n'> <'\tsort <<-\\EOF >expect.add-two &&\n'> 
            <'\t+refs/heads/maint:refs/remotes/scratch/maint\n'> <'\t+refs/heads/master:refs/remotes/scratch/master\n'> 
            <'\t+refs/heads/next:refs/remotes/scratch/next\n'> <'\t+refs/heads/pu:refs/remotes/scratch/pu\n'> 
            <'\t+refs/heads/t/topic:refs/remotes/scratch/t/topic\n'> <'\tEOF\n'> <'\tsort <<-\\EOF >expect.setup-ffonly &&\n'> 
            <'\trefs/heads/master:refs/remotes/scratch/master\n'> <'\t+refs/heads/next:refs/remotes/scratch/next\n'> <'\tEOF\n'> 
            <'\tsort <<-\\EOF >expect.respect-ffonly &&\n'> <'\trefs/heads/master:refs/remotes/scratch/master\n'> 
            <'\t+refs/heads/next:refs/remotes/scratch/next\n'> <'\t+refs/heads/pu:refs/remotes/scratch/pu\n'> <'\tEOF\n'> <'\n'> <'\tgit clone .git/ setbranches &&\n'> 
            <'\t(\n'> <'\t\tcd setbranches &&\n'> <'\t\tgit remote rename origin scratch &&\n'> 
            <'\t\tgit config --get-all remote.scratch.fetch >config-result &&\n'> <'\t\tsort <config-result >../actual.initial &&\n'> <'\n'> 
            <'\t\tgit remote set-branches scratch --add other &&\n'> <'\t\tgit config --get-all remote.scratch.fetch >config-result &&\n'> 
            <'\t\tsort <config-result >../actual.add &&\n'> <'\n'> <'\t\tgit remote set-branches scratch maint master next &&\n'> 
            <'\t\tgit config --get-all remote.scratch.fetch >config-result &&\n'> <'\t\tsort <config-result >../actual.replace &&\n'> <'\n'> 
            <'\t\tgit remote set-branches --add scratch pu t/topic &&\n'> <'\t\tgit config --get-all remote.scratch.fetch >config-result &&\n'> 
            <'\t\tsort <config-result >../actual.add-two &&\n'> <'\n'> <'\t\tgit config --unset-all remote.scratch.fetch &&\n'> 
            <'\t\tgit config remote.scratch.fetch \\\n'> <'\t\t\trefs/heads/master:refs/remotes/scratch/master &&\n'> 
            <'\t\tgit config --add remote.scratch.fetch \\\n'> <'\t\t\t+refs/heads/next:refs/remotes/scratch/next &&\n'> 
            <'\t\tgit config --get-all remote.scratch.fetch >config-result &&\n'> <'\t\tsort <config-result >../actual.setup-ffonly &&\n'> <'\n'> 
            <'\t\tgit remote set-branches --add scratch pu &&\n'> <'\t\tgit config --get-all remote.scratch.fetch >config-result &&\n'> 
            <'\t\tsort <config-result >../actual.respect-ffonly\n'> <'\t) &&\n'> <'\ttest_cmp expect.initial actual.initial &&\n'> 
            <'\ttest_cmp expect.add actual.add &&\n'> <'\ttest_cmp expect.replace actual.replace &&\n'> <'\ttest_cmp expect.add-two actual.add-two &&\n'> 
            <'\ttest_cmp expect.setup-ffonly actual.setup-ffonly &&\n'> <'\ttest_cmp expect.respect-ffonly actual.respect-ffonly\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-branches with --mirror'>)}
        {
          (SQ <'\n'> <'\techo "+refs/*:refs/*" >expect.initial &&\n'> 
            <'\techo "+refs/heads/master:refs/heads/master" >expect.replace &&\n'> <'\tgit clone --mirror .git/ setbranches-mirror &&\n'> <'\t(\n'> <'\t\tcd setbranches-mirror &&\n'> 
            <'\t\tgit remote rename origin scratch &&\n'> <'\t\tgit config --get-all remote.scratch.fetch >../actual.initial &&\n'> <'\n'> 
            <'\t\tgit remote set-branches scratch heads/master &&\n'> <'\t\tgit config --get-all remote.scratch.fetch >../actual.replace\n'> <'\t) &&\n'> 
            <'\ttest_cmp expect.initial actual.initial &&\n'> <'\ttest_cmp expect.replace actual.replace\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'new remote'>)}
        {
          (SQ <'\n'> <'\tgit remote add someremote foo &&\n'> <'\techo foo >expect &&\n'> 
            <'\tgit config --get-all remote.someremote.url >actual &&\n'> <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <get_url_test>
      name: get_url_test
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<remote>} {<get-url>} {(DQ ($ Id.VSub_At '@'))}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<actual>})]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test_cmp>
                  more_env: []
                  words: [{<test_cmp>} {<expect>} {<actual>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'get-url on new remote'>)}
        {
          (SQ <'\n'> <'\techo foo | get_url_test someremote &&\n'> 
            <'\techo foo | get_url_test --all someremote &&\n'> <'\techo foo | get_url_test --push someremote &&\n'> 
            <'\techo foo | get_url_test --push --all someremote\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url with locked config'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished "rm -f .git/config.lock" &&\n'> 
            <'\tgit config --get-all remote.someremote.url >expect &&\n'> <'\t>.git/config.lock &&\n'> <'\ttest_must_fail git remote set-url someremote baz &&\n'> 
            <'\tgit config --get-all remote.someremote.url >actual &&\n'> <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url bar'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url someremote bar &&\n'> <'\techo bar >expect &&\n'> 
            <'\tgit config --get-all remote.someremote.url >actual &&\n'> <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url baz bar'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url someremote baz bar &&\n'> <'\techo baz >expect &&\n'> 
            <'\tgit config --get-all remote.someremote.url >actual &&\n'> <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url zot bar'>)}
        {
          (SQ <'\n'> <'\ttest_must_fail git remote set-url someremote zot bar &&\n'> 
            <'\techo baz >expect &&\n'> <'\tgit config --get-all remote.someremote.url >actual &&\n'> <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --push zot baz'>)}
        {
          (SQ <'\n'> <'\ttest_must_fail git remote set-url --push someremote zot baz &&\n'> 
            <'\techo "YYY" >expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\ttest_must_fail git config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --push zot'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --push someremote zot &&\n'> <'\techo zot >expect &&\n'> 
            <'\techo "YYY" >>expect &&\n'> <'\techo baz >>expect &&\n'> <'\tgit config --get-all remote.someremote.pushurl >actual &&\n'> 
            <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'get-url with different urls'>)}
        {
          (SQ <'\n'> <'\techo baz | get_url_test someremote &&\n'> 
            <'\techo baz | get_url_test --all someremote &&\n'> <'\techo zot | get_url_test --push someremote &&\n'> 
            <'\techo zot | get_url_test --push --all someremote\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --push qux zot'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --push someremote qux zot &&\n'> 
            <'\techo qux >expect &&\n'> <'\techo "YYY" >>expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\tgit config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --push foo qu+x'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --push someremote foo qu+x &&\n'> 
            <'\techo foo >expect &&\n'> <'\techo "YYY" >>expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\tgit config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --push --add aaa'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --push --add someremote aaa &&\n'> 
            <'\techo foo >expect &&\n'> <'\techo aaa >>expect &&\n'> <'\techo "YYY" >>expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\tgit config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'get-url on multi push remote'>)}
        {
          (SQ <'\n'> <'\techo foo | get_url_test --push someremote &&\n'> 
            <'\tget_url_test --push --all someremote <<-\\EOF\n'> <'\tfoo\n'> <'\taaa\n'> <'\tEOF\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --push bar aaa'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --push someremote bar aaa &&\n'> 
            <'\techo foo >expect &&\n'> <'\techo bar >>expect &&\n'> <'\techo "YYY" >>expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\tgit config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --push --delete bar'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --push --delete someremote bar &&\n'> 
            <'\techo foo >expect &&\n'> <'\techo "YYY" >>expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\tgit config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --push --delete foo'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --push --delete someremote foo &&\n'> 
            <'\techo "YYY" >expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\ttest_must_fail git config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --add bbb'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --add someremote bbb &&\n'> <'\techo "YYY" >expect &&\n'> 
            <'\techo baz >>expect &&\n'> <'\techo bbb >>expect &&\n'> 
            <'\ttest_must_fail git config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'get-url on multi fetch remote'>)}
        {
          (SQ <'\n'> <'\techo baz | get_url_test someremote &&\n'> 
            <'\tget_url_test --all someremote <<-\\EOF\n'> <'\tbaz\n'> <'\tbbb\n'> <'\tEOF\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --delete .*'>)}
        {
          (SQ <'\n'> <'\ttest_must_fail git remote set-url --delete someremote .\\* &&\n'> 
            <'\techo "YYY" >expect &&\n'> <'\techo baz >>expect &&\n'> <'\techo bbb >>expect &&\n'> 
            <'\ttest_must_fail git config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --delete bbb'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --delete someremote bbb &&\n'> 
            <'\techo "YYY" >expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\ttest_must_fail git config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --delete baz'>)}
        {
          (SQ <'\n'> <'\ttest_must_fail git remote set-url --delete someremote baz &&\n'> 
            <'\techo "YYY" >expect &&\n'> <'\techo baz >>expect &&\n'> 
            <'\ttest_must_fail git config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --add ccc'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --add someremote ccc &&\n'> <'\techo "YYY" >expect &&\n'> 
            <'\techo baz >>expect &&\n'> <'\techo ccc >>expect &&\n'> 
            <'\ttest_must_fail git config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'remote set-url --delete baz'>)}
        {
          (SQ <'\n'> <'\tgit remote set-url --delete someremote baz &&\n'> 
            <'\techo "YYY" >expect &&\n'> <'\techo ccc >>expect &&\n'> 
            <'\ttest_must_fail git config --get-all remote.someremote.pushurl >actual &&\n'> <'\techo "YYY" >>actual &&\n'> <'\tgit config --get-all remote.someremote.url >>actual &&\n'> 
            <'\tcmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'extra args: setup'>)}
        {
          (SQ <'\n'> <'\t# add a dummy origin so that this does not trigger failure\n'> 
            <'\tgit remote add origin .\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <test_extra_arg>
      name: test_extra_arg
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {(DQ <'extra args: '> ($ Id.VSub_Star '*'))}
                {
                  (DQ <'\n'> <'\t\ttest_must_fail git remote '> ($ Id.VSub_Star '*') 
                    <' bogus_extra_arg 2>actual &&\n'> <'\t\ttest_i18ngrep \'^usage:\' actual\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_extra_arg>
      more_env: []
      words: [{<test_extra_arg>} {<add>} {<nick>} {<url>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_extra_arg>
      more_env: []
      words: [{<test_extra_arg>} {<rename>} {<origin>} {<newname>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_extra_arg>
      more_env: []
      words: [{<test_extra_arg>} {<remove>} {<origin>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_extra_arg>
      more_env: []
      words: [{<test_extra_arg>} {<set-head>} {<origin>} {<master>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_extra_arg>
      more_env: []
      words: [{<test_extra_arg>} {<get-url>} {<origin>} {<newurl>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_extra_arg>
      more_env: []
      words: [{<test_extra_arg>} {<set-url>} {<origin>} {<newurl>} {<oldurl>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'add remote matching the "insteadOf" URL'>)}
        {
          (SQ <'\n'> <'\tgit config url.xyz@example.com.insteadOf backup &&\n'> 
            <'\tgit remote add backup xyz@example.com\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)