(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'USAGE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'USAGE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE)
          op: assign_op.Equal
          rhs: {(SQ <'<start> <url> [<end>]'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LONG_USAGE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LONG_USAGE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LONG_USAGE='> name:LONG_USAGE)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'Summarizes the changes between two commits to the standard output,\n'> 
                <'and includes the given URL in the generated summary.'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SUBDIRECTORY_OK='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SUBDIRECTORY_OK='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUBDIRECTORY_OK='> name:SUBDIRECTORY_OK)
          op: assign_op.Equal
          rhs: {(SQ <Yes>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OPTIONS_KEEPDASHDASH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OPTIONS_KEEPDASHDASH='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'OPTIONS_KEEPDASHDASH='>
              name: OPTIONS_KEEPDASHDASH
            )
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OPTIONS_STUCKLONG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OPTIONS_STUCKLONG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIONS_STUCKLONG='> name:OPTIONS_STUCKLONG)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OPTIONS_SPEC='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OPTIONS_SPEC='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIONS_SPEC='> name:OPTIONS_SPEC)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'git request-pull [options] start url [end]\n'> <'--\n'> 
                <'p    show patch text as well\n'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<git-sh-setup>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_PAGER='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_PAGER='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_PAGER='> name:GIT_PAGER)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_PAGER>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'patch='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'patch='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'patch='> name:patch)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (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>}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <-p>
                  pattern: (pat.Words words:[{<-p>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'patch='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'patch='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'patch='> name:patch)
                          op: assign_op.Equal
                          rhs: {<-p>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-->
                  pattern: (pat.Words words:[{<-->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Break break>)
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <usage>
                      more_env: []
                      words: [{<usage>}]
                      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.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'base='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'base='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 1)}
        )
        (AssignPair
          left: <Id.Lit_VarLike 'url='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 2)}
        )
        (AssignPair
          left: <Id.Lit_VarLike 'status='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName base))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName url))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <usage>
          more_env: []
          words: [{<usage>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'baserev='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'baserev='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'baserev='> name:baserev)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <git>
                    more_env: []
                    words: [
                      {<git>}
                      {<rev-parse>}
                      {<--verify>}
                      {<--quiet>}
                      {(DQ ($ Id.VSub_DollarName base)) <Id.Lit_Other '^'> <0>}
                    ]
                    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>} {<-z>} {(DQ ($ Id.VSub_DollarName baserev))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <die>
              more_env: []
              words: [{<die>} {(DQ <'fatal: Not a valid revision: '> ($ Id.VSub_DollarName base))}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [188 198]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'local='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'local='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'local='> name:local)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Number 3>
                var_name: 3
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VOp1_Percent '%'>
                    arg_word: {<':'> <Id.Lit_Other '*'>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'local='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'local='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'local='> name:local)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name local>
                var_name: local
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<HEAD>})
                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: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Number 3>
                var_name: 3
                suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<Id.Lit_Other '*'> <':'>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'pretty_remote='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'pretty_remote='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pretty_remote='> name:pretty_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 '/'>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'pretty_remote='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'pretty_remote='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pretty_remote='> name:pretty_remote)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name pretty_remote>
                var_name: pretty_remote
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VOp1_Pound '#'>
                    arg_word: {<heads> <Id.Lit_Slash '/'>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'head='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'head='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'head='> name:head)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <git>
                    more_env: []
                    words: [{<git>} {<symbolic-ref>} {<-q>} {(DQ ($ Id.VSub_DollarName local))}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'head='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'head='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'head='> name:head)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name head>
                var_name: head
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: 
                      {
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <git>
                                  more_env: []
                                  words: [
                                    {<git>}
                                    {<show-ref>}
                                    {<--heads>}
                                    {<--tags>}
                                    {(DQ ($ Id.VSub_DollarName local))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <cut>
                                  more_env: []
                                  words: [{<cut>} {<-d> (SQ <' '>)} {<-f2>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        )
                      }
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'head='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'head='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'head='> name:head)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name head>
                var_name: head
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: 
                      {
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <git>
                              more_env: []
                              words: [
                                {<git>}
                                {<rev-parse>}
                                {<--quiet>}
                                {<--verify>}
                                {(DQ ($ Id.VSub_DollarName local))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      }
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName head))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <die>
          more_env: []
          words: [{<die>} {(DQ <'fatal: Not a valid revision: '> ($ Id.VSub_DollarName local))}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'headrev='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'headrev='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'headrev='> name:headrev)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <git>
                    more_env: []
                    words: [
                      {<git>}
                      {<rev-parse>}
                      {<--verify>}
                      {<--quiet>}
                      {(DQ ($ Id.VSub_DollarName head)) <Id.Lit_Other '^'> <0>}
                    ]
                    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 headrev))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <die>
          more_env: []
          words: [{<die>} {(DQ <'fatal: Ambiguous revision: '> ($ Id.VSub_DollarName local))}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (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: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name head>
                var_name: head
                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.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {(DQ <z> ($ Id.VSub_DollarName branch_name))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <z> ($ Id.VSub_DollarName headref))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Pipeline
                      negated: <Id.KW_Bang '!'>
                      children: [
                        (command.Simple
                          blame_tok: <git>
                          more_env: []
                          words: [
                            {<git>}
                            {<config>}
                            {(DQ <branch.> ($ Id.VSub_DollarName branch_name) <.description>)}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (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: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
          ]
          spids: [403 437]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'merge_base='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'merge_base='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'merge_base='> name:merge_base)
              op: assign_op.Equal
              rhs: 
                {
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <git>
                        more_env: []
                        words: [
                          {<git>}
                          {<merge-base>}
                          {($ Id.VSub_DollarName baserev)}
                          {($ Id.VSub_DollarName headrev)}
                        ]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
            )
          ]
          redirects: []
        )
        (command.Simple
          blame_tok: <die>
          more_env: []
          words: [
            {<die>}
            {
              (DQ <'fatal: No commits in common between '> ($ Id.VSub_DollarName base) <' and '> 
                ($ Id.VSub_DollarName head)
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'find_matching_ref='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'find_matching_ref='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'find_matching_ref='> name:find_matching_ref)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'\n'> <'\tmy ($head,$headrev) = (@ARGV);\n'> <'\tmy ($found);\n'> <'\n'> 
                <'\twhile (<STDIN>) {\n'> <'\t\tchomp;\n'> <'\t\tmy ($sha1, $ref, $deref) = /^(\\S+)\\s+([^^]+)(\\S*)$/;\n'> 
                <'\t\tmy ($pattern);\n'> <'\t\tnext unless ($sha1 eq $headrev);\n'> <'\n'> <'\t\t$pattern="/$head\\$";\n'> 
                <'\t\tif ($ref eq $head) {\n'> <'\t\t\t$found = $ref;\n'> <'\t\t}\n'> <'\t\tif ($ref =~ /$pattern/) {\n'> <'\t\t\t$found = $ref;\n'> 
                <'\t\t}\n'> <'\t\tif ($sha1 eq $head) {\n'> <'\t\t\t$found = $sha1;\n'> <'\t\t}\n'> <'\t}\n'> <'\tif ($found) {\n'> 
                <'\t\tprint "$found\\n";\n'> <'\t}\n'>
              )
            }
        )
      ]
      redirects: []
    )
    (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.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <git>
                        more_env: []
                        words: [{<git>} {<ls-remote>} {(DQ ($ Id.VSub_DollarName url))}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <Id.Lit_At '@'>
                        more_env: []
                        words: [
                          {<Id.Lit_At '@'> <Id.Lit_Splice '@PERL'> <Id.Lit_At '@'> <Id.Lit_At '@'>}
                          {<-e>}
                          {(DQ ($ Id.VSub_DollarName find_matching_ref))}
                          {
                            (DQ 
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name remote>
                                var_name: remote
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_ColonHyphen _>
                                    arg_word: {<HEAD>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            )
                          }
                          {(DQ ($ Id.VSub_DollarName headrev))}
                        ]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                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>} {<-z>} {(DQ ($ Id.VSub_DollarName ref))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'warn: No match for commit '> ($ Id.VSub_DollarName headrev) <' found at '> 
                    ($ Id.VSub_DollarName url)
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'warn: Are you sure you pushed \''> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name remote>
                      var_name: remote
                      suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<HEAD>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <'\' there?'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'status='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'status='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          spids: [549 559]
        )
      ]
      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>}
                    {(DQ ($ Id.VSub_DollarName ref))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <'refs/tags/'> ($ Id.VSub_DollarName pretty_remote))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pretty_remote='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pretty_remote='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pretty_remote='> name:pretty_remote)
                  op: assign_op.Equal
                  rhs: {<'tags/'> ($ Id.VSub_DollarName pretty_remote)}
                )
              ]
              redirects: []
            )
          ]
          spids: [600 615]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'url='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'url='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <git>
                    more_env: []
                    words: [{<git>} {<ls-remote>} {<--get-url>} {(DQ ($ Id.VSub_DollarName url))}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <git>
          more_env: []
          words: [
            {<git>}
            {<show>}
            {<-s>}
            {<--format> <Id.Lit_Equals '='> 
              (SQ <'The following changes since commit %H:\n'> <'\n'> <'  %s (%ci)\n'> <'\n'> 
                <'are available in the git repository at:\n'>
              )
            }
            {($ Id.VSub_DollarName merge_base)}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [
            {<echo>}
            {(DQ <'  '> ($ Id.VSub_DollarName url) <' '> ($ Id.VSub_DollarName pretty_remote))}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <git>
          more_env: []
          words: [
            {<git>}
            {<show>}
            {<-s>}
            {<--format> <Id.Lit_Equals '='> 
              (SQ <'\n'> <'for you to fetch changes up to %H:\n'> <'\n'> <'  %s (%ci)\n'> <'\n'> 
                <---------------------------------------------------------------->
              )
            }
            {($ Id.VSub_DollarName headrev)}
          ]
          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>}
                        {
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                blame_tok: <git>
                                more_env: []
                                words: [{<git>} {<cat-file>} {<-t>} {(DQ ($ Id.VSub_DollarName head))}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                        {<Id.Lit_Equals '='>}
                        {<tag>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <git>
                      more_env: []
                      words: [{<git>} {<cat-file>} {<tag>} {(DQ ($ Id.VSub_DollarName head))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sed>
                      more_env: []
                      words: [
                        {<sed>}
                        {<-n>}
                        {<-e>}
                        {(SQ <'1,/^$/d'>)}
                        {<-e>}
                        {(SQ <'/^-----BEGIN PGP /q'>)}
                        {<-e>}
                        {<p>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {(DQ <---------------------------------------------------------------->)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              spids: [692 712]
            )
          ]
          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>} {<-n>} {(DQ ($ Id.VSub_DollarName branch_name))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ <'(from the branch description for '> ($ Id.VSub_DollarName branch_name) 
                        <' local branch)'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [
                    {<git>}
                    {<config>}
                    {(DQ <branch.> ($ Id.VSub_DollarName branch_name) <.description>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {(DQ <---------------------------------------------------------------->)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              spids: [763 773]
            )
          ]
          else_action: []
          fi_kw: <Id.KW_Fi fi>
          redirects: []
        )
        (command.Simple
          blame_tok: <git>
          more_env: []
          words: [
            {<git>}
            {<shortlog>}
            {<Id.Lit_Other '^'> ($ Id.VSub_DollarName baserev)}
            {($ Id.VSub_DollarName headrev)}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <git>
          more_env: []
          words: [
            {<git>}
            {<diff>}
            {<-M>}
            {<--stat>}
            {<--summary>}
            {($ Id.VSub_DollarName patch)}
            {($ Id.VSub_DollarName merge_base) <..> ($ Id.VSub_DollarName headrev)}
          ]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'status='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'status='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'status='> name:status)
              op: assign_op.Equal
              rhs: {<1>}
            )
          ]
          redirects: []
        )
      ]
      ops: [
        <Id.Op_DAmp _>
        <Id.Op_DAmp _>
        <Id.Op_DAmp _>
        <Id.Op_DAmp _>
        <Id.Op_DAmp _>
        <Id.Op_DAmp _>
        <Id.Op_DPipe _>
      ]
    )
    (command.ControlFlow
      keyword: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName status)}
    )
  ]
)