(command.CommandList
  children: [
    (C {(.)} {(git-sh-setup)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:LF spids:[32])
          op: Equal
          rhs: {(SQ <'\n'>)}
          spids: [32]
        )
      ]
      spids: [32]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:bases spids:[41])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [41]
        )
        (assign_pair
          lhs: (lhs_expr.LhsName name:head spids:[43])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [43]
        )
        (assign_pair
          lhs: (lhs_expr.LhsName name:remotes spids:[45])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [45]
        )
        (assign_pair
          lhs: (lhs_expr.LhsName name:sep_seen spids:[47])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [47]
        )
      ]
      spids: [41]
    )
    (command.ForEach
      iter_name: arg
      do_arg_iter: T
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: 
                {
                  (DQ (',') ($ VSub_Name '$sep_seen') (',') ($ VSub_Name '$head') (',') 
                    ($ VSub_Name '$arg') (',')
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (Lit_Comma ',') (--) (Lit_Comma ',')}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:sep_seen spids:[78])
                          op: Equal
                          rhs: {(yes)}
                          spids: [78]
                        )
                      ]
                      spids: [78]
                    )
                  ]
                  spids: [71 75 82 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Comma ',') (yes) (Lit_Comma ',') (Lit_Comma ',') (Lit_Other '*')}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:head spids:[93])
                          op: Equal
                          rhs: {($ VSub_Name '$arg')}
                          spids: [93]
                        )
                      ]
                      spids: [93]
                    )
                  ]
                  spids: [85 90 97 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Comma ',') (yes) (Lit_Comma ',') (Lit_Other '*')}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:remotes spids:[107])
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$remotes') ($ VSub_Name '$arg') (' '))}
                          spids: [107]
                        )
                      ]
                      spids: [107]
                    )
                  ]
                  spids: [100 104 115 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:bases spids:[122])
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$bases') ($ VSub_Name '$arg') (' '))}
                          spids: [122]
                        )
                      ]
                      spids: [122]
                    )
                  ]
                  spids: [118 119 130 16777215]
                )
              ]
              spids: [56 68 133]
            )
          ]
          spids: [53 135]
        )
      spids: [16777215 16777215]
    )
    (command.Case
      to_match: {(DQ ($ VSub_Name '$remotes'))}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other '?') (Lit_Other '*') (SQ <' '>) (Lit_Other '?') (Lit_Other '*')}]
          spids: [149 156 159 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [(command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(2)})]
          spids: [161 162 169 16777215]
        )
      ]
      spids: [141 147 171]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Pipeline
              children: [(C {(git)} {(diff-index)} {(--quiet)} {(--cached)} {(HEAD)} {(--)})]
              negated: T
            )
          ]
          action: [
            (C {(gettextln)} 
              {
                (DQ 
                  (
'Error: Your local changes to the following files would be overwritten by merge'
                  )
                )
              }
            )
            (command.Pipeline
              children: [
                (C {(git)} {(diff-index)} {(--cached)} {(--name-only)} {(HEAD)} {(--)})
                (C {(sed)} {(-e)} {(SQ <'s/^/    /'>)})
              ]
              negated: F
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(2)})
          ]
          spids: [16777215 197]
        )
      ]
      spids: [16777215 234]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MRC spids:[236])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [(C {(git)} {(rev-parse)} {(--verify)} {(-q)} {($ VSub_Name '$head')})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [237 247]
              )
            }
          spids: [236]
        )
      ]
      spids: [236]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MRT spids:[249])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: (command.CommandList children:[(C {(git)} {(write-tree)})])
                left_token: <Left_CommandSub '$('>
                spids: [250 254]
              )
            }
          spids: [249]
        )
      ]
      spids: [249]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:NON_FF_MERGE spids:[256])
          op: Equal
          rhs: {(0)}
          spids: [256]
        )
      ]
      spids: [256]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:OCTOPUS_FAILURE spids:[259])
          op: Equal
          rhs: {(0)}
          spids: [259]
        )
      ]
      spids: [259]
    )
    (command.ForEach
      iter_name: SHA1
      iter_words: [{($ VSub_Name '$remotes')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {(DQ ($ VSub_Name '$OCTOPUS_FAILURE'))}
              arms: [
                (case_arm
                  pat_list: [{(1)}]
                  action: [
                    (C {(gettextln)} {(DQ ('Automated merge did not work.'))})
                    (C {(gettextln)} {(DQ ('Should not be doing an octopus.'))})
                    (command.ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {(2)}
                    )
                  ]
                  spids: [282 283 16777215 317]
                )
              ]
              spids: [273 279 317]
            )
            (C {(eval)} 
              {(Lit_VarLike 'pretty_name=') 
                (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (Lit_LBrace '{') (GITHEAD_) ($ VSub_Name '$SHA1') (Lit_Other ':') (-) ($ VSub_Name '$SHA1') 
                (Lit_RBrace '}')
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} {(DQ ($ VSub_Name '$SHA1'))} {(Lit_Other '=')} 
                      {(DQ ($ VSub_Name '$pretty_name'))}
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:SHA1_UP spids:[352])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name '$SHA1'))})
                                            (C {(tr)} {(a-z)} {(A-Z)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [354 368]
                                )
                              )
                            }
                          spids: [352]
                        )
                      ]
                      spids: [352]
                    )
                    (C {(eval)} 
                      {(Lit_VarLike 'pretty_name=') 
                        (word_part.EscapedLiteralPart
                          token: <Lit_EscapedChar '\\$'>
                        ) (Lit_LBrace '{') (GITHEAD_) ($ VSub_Name '$SHA1_UP') (Lit_Other ':') (-) ($ VSub_Name '$pretty_name') 
                        (Lit_RBrace '}')
                      }
                    )
                  ]
                  spids: [16777215 349]
                )
              ]
              spids: [16777215 385]
            )
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:common spids:[388])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [
                                  (C {(git)} {(merge-base)} {(--all)} {($ VSub_Name '$SHA1')} 
                                    {($ VSub_Name '$MRC')}
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [389 399]
                          )
                        }
                      spids: [388]
                    )
                  ]
                  spids: [388]
                )
                (C {(die)} 
                  {
                    (DQ 
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(eval_gettext)} 
                                {
                                  (DQ ('Unable to find common commit with ') 
                                    (word_part.EscapedLiteralPart
                                      token: <Lit_EscapedChar '\\$'>
                                    ) (pretty_name)
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [407 415]
                      )
                    )
                  }
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ VSub_Name '$LF') ($ VSub_Name '$common') ($ VSub_Name '$LF'))}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') 
                      (DQ ($ VSub_Name '$LF') ($ VSub_Name '$SHA1') ($ VSub_Name '$LF')) (Lit_Other '*')
                    }
                  ]
                  action: [
                    (C {(eval_gettextln)} 
                      {
                        (DQ ('Already up-to-date with ') 
                          (word_part.EscapedLiteralPart
                            token: <Lit_EscapedChar '\\$'>
                          ) (pretty_name)
                        )
                      }
                    )
                    (command.ControlFlow token:<ControlFlow_Continue continue>)
                  ]
                  spids: [431 438 453 16777215]
                )
              ]
              spids: [420 428 456]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (C {(test)} {(DQ ($ VSub_Name '$common') (',') ($ VSub_Name '$NON_FF_MERGE'))} 
                      {(Lit_Other '=')} {(DQ ($ VSub_Name '$MRC') (',0'))}
                    )
                  ]
                  action: [
                    (C {(eval_gettextln)} 
                      {
                        (DQ ('Fast-forwarding to: ') 
                          (word_part.EscapedLiteralPart
                            token: <Lit_EscapedChar '\\$'>
                          ) (pretty_name)
                        )
                      }
                    )
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(git)} {(read-tree)} {(-u)} {(-m)} {($ VSub_Name '$head')} 
                          {($ VSub_Name '$SHA1')}
                        )
                        (command.ControlFlow token:<ControlFlow_Exit exit>)
                      ]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:MRC spids:[524])
                          op: Equal
                          rhs: {($ VSub_Name '$SHA1')}
                          spids: [524]
                        )
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:MRT spids:[527])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(git)} {(write-tree)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [528 532]
                              )
                            }
                          spids: [527]
                        )
                      ]
                      spids: [524]
                    )
                    (command.ControlFlow token:<ControlFlow_Continue continue>)
                  ]
                  spids: [16777215 478]
                )
              ]
              spids: [16777215 538]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:NON_FF_MERGE spids:[542])
                  op: Equal
                  rhs: {(1)}
                  spids: [542]
                )
              ]
              spids: [542]
            )
            (C {(eval_gettextln)} 
              {
                (DQ ('Trying simple merge with ') 
                  (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (pretty_name)
                )
              }
            )
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (C {(git)} {(read-tree)} {(-u)} {(-m)} {(--aggressive)} {($ VSub_Name '$common')} 
                  {($ VSub_Name '$MRT')} {($ VSub_Name '$SHA1')}
                )
                (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(2)})
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:next spids:[579])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.SimpleCommand
                                words: [{(git)} {(write-tree)}]
                                redirects: [
                                  (redir.Redir
                                    op: <Redir_Great '2>'>
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [580 587]
                      )
                    }
                  spids: [579]
                )
              ]
              spids: [579]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [(C {(test)} {($ VSub_QMark '$?')} {(-ne)} {(0)})]
                  action: [
                    (C {(gettextln)} {(DQ ('Simple merge did not work, trying automatic merge.'))})
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(git-merge-index)} {(-o)} {(git-merge-one-file)} {(-a)})
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:OCTOPUS_FAILURE spids:[622])
                              op: Equal
                              rhs: {(1)}
                              spids: [622]
                            )
                          ]
                          spids: [622]
                        )
                      ]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:next spids:[626])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.SimpleCommand
                                        words: [{(git)} {(write-tree)}]
                                        redirects: [
                                          (redir.Redir
                                            op: <Redir_Great '2>'>
                                            fd: 2
                                            arg_word: {(/dev/null)}
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [627 634]
                              )
                            }
                          spids: [626]
                        )
                      ]
                      spids: [626]
                    )
                  ]
                  spids: [16777215 601]
                )
              ]
              spids: [16777215 637]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:MRC spids:[641])
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$MRC') (' ') ($ VSub_Name '$SHA1'))}
                  spids: [641]
                )
              ]
              spids: [641]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:MRT spids:[649])
                  op: Equal
                  rhs: {($ VSub_Name '$next')}
                  spids: [649]
                )
              ]
              spids: [649]
            )
          ]
          spids: [270 652]
        )
      spids: [267 16777215]
    )
    (command.ControlFlow
      token: <ControlFlow_Exit exit>
      arg_word: {(DQ ($ VSub_Name '$OCTOPUS_FAILURE'))}
    )
  ]
)