(List
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('bases', {[SQ ]}), ('head', {[SQ ]}), ('remotes', {[SQ ]}), ('sep_seen', {[SQ ]})])
  (For arg do_arg_iter)
    (Case to_match={[DQ [LIT_CHARS ","][VarSub sep_seen][LIT_CHARS ","][VarSub head][LIT_CHARS ","][VarSub arg][LIT_CHARS ","]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_CHARS --] [LIT_COMMA ","]}], [{[LIT_COMMA ","] [LIT_CHARS yes] [LIT_COMMA ","] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_COMMA ","] [LIT_CHARS yes] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]]
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('sep_seen', {[LIT_CHARS yes]})])
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('head', {[VarSub arg]})])
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('remotes', {[DQ [VarSub remotes][VarSub arg][LIT_CHARS " "]]})])
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('bases', {[DQ [VarSub bases][VarSub arg][LIT_CHARS " "]]})])
    )
  )
  (Case to_match={[DQ [VarSub remotes]]}, pat_word_list=[[{[LIT_OTHER "?"] [LIT_OTHER "*"] [SQ <LIT_CHARS " ">] [LIT_OTHER "?"] [LIT_OTHER "*"]}]]
    (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}    )
  )
  (If
    (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub bases]]}    )
    (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}    )
  )
  (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS -q]} {[LIT_CHARS --refresh]}  )
  (AndOr OP_OR_IF
    (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[LIT_CHARS -u]} {[LIT_CHARS -m]} {[LIT_CHARS --aggressive]} {[VarSub bases]} {[VarSub head]} {[VarSub remotes]}    )
    (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}    )
  )
  (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Trying simple merge."]]}  )
  (If
    (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('result_tree', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} <REDIR_GREAT "2>"> 2)]{[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})])
    (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}    )
    (ElseTrue)
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Simple merge failed, trying Automatic merge."]]}      )
      (If
        (Com {[LIT_CHARS git-merge-index]} {[LIT_CHARS -o]} {[LIT_CHARS git-merge-one-file]} {[LIT_CHARS -a]}        )
        (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}        )
        (ElseTrue)
        (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}        )
      )
    )
  )
)