(command.CommandList
  children: [
    (command.Sentence
      child: 
        (command.AndOr
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_DIR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_DIR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_DIR='> name:GIT_DIR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <git>
                            more_env: []
                            words: [{<git>} {<rev-parse>} {<-q>} {<--git-dir>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
          ]
          ops: [<Id.Op_DPipe _>]
        )
      terminator: <Id.Op_Semi _>
    )
    (command.ShFunction
      name_tok: <get_default_remote>
      name: get_default_remote
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'curr_branch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'curr_branch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'curr_branch='> name:curr_branch)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <git>
                            more_env: []
                            words: [{<git>} {<symbolic-ref>} {<-q>} {<HEAD>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'curr_branch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'curr_branch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'curr_branch='> name:curr_branch)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name curr_branch>
                          var_name: curr_branch
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VOp1_Pound '#'>
                              arg_word: {<refs> <Id.Lit_Slash '/'> <heads> <Id.Lit_Slash '/'>}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'origin='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'origin='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'origin='> name:origin)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <git>
                            more_env: []
                            words: [
                              {<git>}
                              {<config>}
                              {<--get>}
                              {(DQ <branch.> ($ Id.VSub_DollarName curr_branch) <.remote>)}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name origin>
                    var_name: origin
                    suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<origin>})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <get_remote_merge_branch>
      name: get_remote_merge_branch
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Pound '#'))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>} {<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'origin='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'origin='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'origin='> name:origin)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number 1))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'default='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'default='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'default='> name:default)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <get_default_remote>
                                    more_env: []
                                    words: [{<get_default_remote>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName origin))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'origin='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'origin='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'origin='> name:origin)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName default)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'curr_branch='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'curr_branch='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'curr_branch='>
                                  name: curr_branch
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Simple
                                        blame_tok: <git>
                                        more_env: []
                                        words: [{<git>} {<symbolic-ref>} {<-q>} {<HEAD>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_DollarName origin))}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName default))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <git>
                                    more_env: []
                                    words: [
                                      {<git>}
                                      {<for-each-ref>}
                                      {<--format> <Id.Lit_Equals '='> (SQ <'%(upstream)'>)}
                                      {($ Id.VSub_DollarName curr_branch)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'repo='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'repo='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'repo='> name:repo)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ref='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ref='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ref='> name:ref)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName ref))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Other '+'>
                          pattern: (pat.Words words:[{<Id.Lit_Other '+'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ref='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ref='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ref='> name:ref)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <expr>
                                            more_env: []
                                            words: [
                                              {<expr>}
                                              {(DQ <z> ($ Id.VSub_DollarName ref))}
                                              {<Id.Lit_Colon ':'>}
                                              {(SQ <'z+\\(.*\\)'>)}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <expr>
                          more_env: []
                          words: [
                            {<expr>}
                            {(DQ <z> ($ Id.VSub_DollarName ref))}
                            {<Id.Lit_Colon ':'>}
                            {(SQ <'z.*:'>)}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'ref='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'ref='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ref='> name:ref)
                              op: assign_op.Equal
                              rhs: {(DQ (${ Id.VSub_Name ref) <':'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'remote='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'remote='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <expr>
                                    more_env: []
                                    words: [
                                      {<expr>}
                                      {(DQ <z> ($ Id.VSub_DollarName ref))}
                                      {<Id.Lit_Colon ':'>}
                                      {(SQ <'z\\([^:]*\\):'>)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName remote))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )} {<HEAD>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'remote='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'remote='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote)
                                  op: assign_op.Equal
                                  rhs: {<HEAD>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <'heads/'>
                          pattern: (pat.Words words:[{<'heads/'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'remote='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'remote='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name remote>
                                        var_name: remote
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: {<heads> <Id.Lit_Slash '/'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <'refs/heads/'>
                          pattern: (pat.Words words:[{<'refs/heads/'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'remote='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'remote='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name remote>
                                        var_name: remote
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: 
                                              {<refs> <Id.Lit_Slash '/'> <heads> <Id.Lit_Slash '/'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <'refs/'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<'refs/'> <Id.Lit_Star '*'>}
                                {<'tags/'> <Id.Lit_Star '*'>}
                                {<'remotes/'> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'remote='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'remote='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<-n>}
                            {(DQ ($ Id.VSub_DollarName remote))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName repo))})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <.>
                              pattern: (pat.Words words:[{<.>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ <'refs/heads/'> ($ Id.VSub_DollarName remote))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ <'refs/remotes/'> ($ Id.VSub_DollarName repo) <'/'> 
                                        ($ Id.VSub_DollarName remote)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <error_on_missing_default_upstream>
      name: error_on_missing_default_upstream
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cmd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cmd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'op_type='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'op_type='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op_type='> name:op_type)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 2))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'op_prep='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'op_prep='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'op_prep='> name:op_prep)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 3))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'example='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'example='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'example='> name:example)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 4))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'branch_name='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'branch_name='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'branch_name='> name:branch_name)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <git>
                            more_env: []
                            words: [{<git>} {<symbolic-ref>} {<-q>} {<HEAD>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'display_branch_name='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'display_branch_name='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'display_branch_name='>
                      name: display_branch_name
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name branch_name>
                          var_name: branch_name
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VOp1_Pound '#'>
                              arg_word: {<refs> <Id.Lit_Slash '/'> <heads> <Id.Lit_Slash '/'>}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'remote='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'remote='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <gettext>
                              more_env: []
                              words: [{<gettext>} {(DQ <'<remote>'>)}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'branch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'branch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'branch='> name:branch)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <gettext>
                              more_env: []
                              words: [{<gettext>} {(DQ <'<branch>'>)}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <git>
                                        more_env: []
                                        words: [{<git>} {<remote>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <wc>
                                        more_env: []
                                        words: [{<wc>} {<-l>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                            {<Id.Lit_Equals '='>}
                            {<1>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'remote='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'remote='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <git>
                                    more_env: []
                                    words: [{<git>} {<remote>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [523 544]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName branch_name))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <gettextln>
                      more_env: []
                      words: [{<gettextln>} {(DQ <'You are not currently on a branch.'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [559 570]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <gettextln>
                  more_env: []
                  words: [
                    {<gettextln>}
                    {(DQ <'There is no tracking information for the current branch.'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName op_type))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <rebase>
                  pattern: (pat.Words words:[{<rebase>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <gettextln>
                      more_env: []
                      words: [
                        {<gettextln>}
                        {(DQ <'Please specify which branch you want to rebase against.'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <merge>
                  pattern: (pat.Words words:[{<merge>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <gettextln>
                      more_env: []
                      words: [
                        {<gettextln>}
                        {(DQ <'Please specify which branch you want to merge with.'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'BUG: unknown operation type: '> ($ Id.VSub_DollarName op_type))}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval_gettextln>
              more_env: []
              words: [
                {<eval_gettextln>}
                {
                  (DQ <'See git-'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                    <'{cmd}(1) for details.'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'    '> ($ Id.VSub_DollarName example))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName branch_name))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <gettextln>
                      more_env: []
                      words: [
                        {<gettextln>}
                        {
                          (DQ 
                            <
'If you wish to set tracking information for this branch you can do so with:'
                            >
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'    git branch --set-upstream-to='> ($ Id.VSub_DollarName remote) <'/'> 
                            ($ Id.VSub_DollarName branch) <' '> ($ Id.VSub_DollarName display_branch_name)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [679 690]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)