(List (= scope= flags=0 words=[] bindings=[('LF', {[SQ ]})]) (FunctionDef die [] (List (Com {[LIT_CHARS echo]} {[DQ [VarSub *]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= 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= flags=0 words=[] bindings=[('sep_seen', {[LIT_CHARS yes]})]) (= scope= flags=0 words=[] bindings=[('head', {[VarSub arg]})]) (= scope= flags=0 words=[] bindings=[('remotes', {[DQ [VarSub remotes][VarSub arg][LIT_CHARS " "]]})]) (= scope= 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_OTHER "?"] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]} ) ) (= scope= flags=0 words=[] bindings=[('MRC', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --verify]} {[LIT_CHARS -q]} {[VarSub head]})]})]) (= scope= flags=0 words=[] bindings=[('MRT', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})]) (= scope= flags=0 words=[] bindings=[('NON_FF_MERGE', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('OCTOPUS_FAILURE', {[LIT_CHARS 0]})]) (For SHA1 [{[VarSub remotes]}]) (List (Case to_match={[DQ [VarSub OCTOPUS_FAILURE]]}, pat_word_list=[[{[LIT_CHARS 1]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Automated merge did not work."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Should not be doing an Octopus."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]} ) ) ) (Com {[LIT_CHARS eval]} {[LIT_VAR_LIKE "pretty_name="] [\ LIT_ESCAPED_CHAR "\\$"] [LIT_LBRACE "{"] [LIT_CHARS GITHEAD_] [VarSub SHA1] [LIT_OTHER ":"] [LIT_CHARS -] [VarSub SHA1] [LIT_RBRACE "}"] =} ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub SHA1]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub pretty_name]]} ) (List (= scope= flags=0 words=[] bindings=[('SHA1_UP', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub SHA1]]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS a-z]} {[LIT_CHARS A-Z]}) )]]})]) (Com {[LIT_CHARS eval]} {[LIT_VAR_LIKE "pretty_name="] [\ LIT_ESCAPED_CHAR "\\$"] [LIT_LBRACE "{"] [LIT_CHARS GITHEAD_] [VarSub SHA1_UP] [LIT_OTHER ":"] [LIT_CHARS -] [VarSub pretty_name] [LIT_RBRACE "}"] =} ) ) ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('common', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS merge-base]} {[LIT_CHARS --all]} {[VarSub SHA1]} {[VarSub MRC]})]})]) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "Unable to find common commit with "][VarSub pretty_name]]} ) ) (Case to_match={[DQ [VarSub LF][VarSub common][VarSub LF]]}, pat_word_list=[[{[LIT_OTHER "*"] [DQ [VarSub LF][VarSub SHA1][VarSub LF]] [LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Already up-to-date with "][VarSub pretty_name]]} ) (Com {[LIT_CHARS continue]} ) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub common][LIT_CHARS ","][VarSub NON_FF_MERGE]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub MRC][LIT_CHARS ",0"]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Fast-forwarding to: "][VarSub pretty_name]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[LIT_CHARS -u]} {[LIT_CHARS -m]} {[VarSub head]} {[VarSub SHA1]} ) (Com {[LIT_CHARS exit]} ) ) (= scope= flags=0 words=[] bindings=[('MRC', {[VarSub SHA1]}), ('MRT', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})]) (Com {[LIT_CHARS continue]} ) ) ) (= scope= flags=0 words=[] bindings=[('NON_FF_MERGE', {[LIT_CHARS 1]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Trying simple merge with "][VarSub pretty_name]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS read-tree]} {[LIT_CHARS -u]} {[LIT_CHARS -m]} {[LIT_CHARS --aggressive]} {[VarSub common]} {[VarSub MRT]} {[VarSub SHA1]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]} ) ) (= scope= flags=0 words=[] bindings=[('next', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})]) (If (Com {[LIT_CHARS test]} {[VarSub ?]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Simple merge did not work, trying automatic merge."]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git-merge-index]} {[LIT_CHARS -o]} {[LIT_CHARS git-merge-one-file]} {[LIT_CHARS -a]} ) (= scope= flags=0 words=[] bindings=[('OCTOPUS_FAILURE', {[LIT_CHARS 1]})]) ) (= scope= flags=0 words=[] bindings=[('next', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})]) ) ) (= scope= flags=0 words=[] bindings=[('MRC', {[DQ [VarSub MRC][LIT_CHARS " "][VarSub SHA1]]})]) (= scope= flags=0 words=[] bindings=[('MRT', {[VarSub next]})]) ) ) (Com {[LIT_CHARS exit]} {[DQ [VarSub OCTOPUS_FAILURE]]} ) )