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