(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:me spids:[10])
          op: Equal
          rhs: {(rerere-train)}
          spids: [10]
        )
      ]
      spids: [10]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:USAGE spids:[13])
          op: Equal
          rhs: {(DQ ($ VSub_DollarName '$me') (' rev-list-args'))}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SUBDIRECTORY_OK spids:[20])
          op: Equal
          rhs: {(Yes)}
          spids: [20]
        )
      ]
      spids: [20]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:OPTIONS_SPEC spids:[23])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [23]
        )
      ]
      spids: [23]
    )
    (C {(.)} 
      {
        (DQ 
          (word_part.CommandSubPart
            command_list: (command.CommandList children:[(C {(git)} {(--exec-path)})])
            left_token: <Left_CommandSub '$('>
            spids: [28 32]
          ) (/git-sh-setup)
        )
      }
    )
    (C {(require_work_tree)})
    (C {(cd_to_toplevel)})
    (command.AndOr
      ops: [Op_DPipe Op_DPipe]
      children: [
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:branch spids:[44])
              op: Equal
              rhs: 
                {
                  (word_part.CommandSubPart
                    command_list: 
                      (command.CommandList
                        children: [(C {(git)} {(symbolic-ref)} {(-q)} {(HEAD)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [45 53]
                  )
                }
              spids: [44]
            )
          ]
          spids: [44]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:original_HEAD spids:[57])
              op: Equal
              rhs: 
                {
                  (word_part.CommandSubPart
                    command_list: 
                      (command.CommandList
                        children: [(C {(git)} {(rev-parse)} {(--verify)} {(HEAD)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [58 66]
                  )
                }
              spids: [57]
            )
          ]
          spids: [57]
        )
        (command.BraceGroup
          children: [
            (command.SimpleCommand
              words: [{(echo)} {(DQ ('Not on any branch and no commit yet?'))}]
              redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [70]
        )
      ]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mkdir)} {(-p)} {(DQ ($ VSub_DollarName '$GIT_DIR') (/rr-cache))})
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (command.Pipeline
      children: [
        (C {(git)} {(rev-list)} {(--parents)} {(DQ ($ VSub_At '$@'))})
        (command.WhileUntil
          keyword: <KW_While while>
          cond: [(C {(read)} {(commit)} {(parent1)} {(other_parents)})]
          body: 
            (command.DoGroup
              children: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$other_parents'))})]
                      action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                      spids: [16777215 140]
                    )
                  ]
                  spids: [16777215 150]
                )
                (C {(git)} {(checkout)} {(-q)} {(DQ ($ VSub_DollarName '$parent1') ('^0'))})
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.SimpleCommand
                          words: [{(git)} {(merge)} {($ VSub_DollarName '$other_parents')}]
                          redirects: [
                            (redir.Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(/dev/null)}
                            )
                            (redir.Redir
                              op: <Redir_GreatAnd '2>&'>
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                      ]
                      action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                      spids: [16777215 180]
                    )
                  ]
                  spids: [16777215 190]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [(C {(test)} {(-s)} {(DQ ($ VSub_DollarName '$GIT_DIR') (/MERGE_RR))})]
                      action: [
                        (C {(git)} {(show)} {(-s)} 
                          {(--pretty) (Lit_Other '=') (format) (Lit_Other ':') 
                            (DQ ('Learning from %h %s'))
                          } {(DQ ($ VSub_DollarName '$commit'))}
                        )
                        (C {(git)} {(rerere)})
                        (C {(git)} {(checkout)} {(-q)} {($ VSub_DollarName '$commit')} {(--)} {(.)})
                        (C {(git)} {(rerere)})
                      ]
                      spids: [16777215 205]
                    )
                  ]
                  spids: [16777215 250]
                )
                (C {(git)} {(reset)} {(-q)} {(--hard)})
              ]
              spids: [126 261]
            )
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-z)} {(DQ ($ VSub_DollarName '$branch'))})]
          action: [(C {(git)} {(checkout)} {(DQ ($ VSub_DollarName '$original_HEAD'))})]
          spids: [16777215 274]
        )
      ]
      else_action: [
        (C {(git)} {(checkout)} 
          {
            (DQ 
              (word_part.BracedVarSub
                token: <VSub_Name branch>
                suffix_op: 
                  (suffix_op.StringUnary
                    op_id: VOp1_Pound
                    arg_word: {(refs) (Lit_Slash /) (heads) (Lit_Slash /)}
                  )
                spids: [293 300]
              )
            )
          }
        )
      ]
      spids: [285 303]
    )
  ]
)