(command.CommandList children: [ (C {<.>} {<git-sh-setup>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LF) op: assign_op.Equal rhs: {(SQ <'\n'>)} spids: [24] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bases) op: assign_op.Equal rhs: (word.Empty) spids: [33] ) (assign_pair lhs: (sh_lhs_expr.Name name:head) op: assign_op.Equal rhs: (word.Empty) spids: [35] ) (assign_pair lhs: (sh_lhs_expr.Name name:remotes) op: assign_op.Equal rhs: (word.Empty) spids: [37] ) (assign_pair lhs: (sh_lhs_expr.Name name:sep_seen) op: assign_op.Equal rhs: (word.Empty) spids: [39] ) ] ) (command.ForEach iter_name: arg do_arg_iter: T body: (command.DoGroup children: [ (command.Case to_match: { (DQ <','> ($ Id.VSub_DollarName '$sep_seen') <','> ($ Id.VSub_DollarName '$head') <','> ($ Id.VSub_DollarName '$arg') <','> ) } arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Comma ','> <--> <Id.Lit_Comma ','>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sep_seen) op: assign_op.Equal rhs: {<yes>} spids: [70] ) ] ) ] spids: [63 67 74 -1] ) (case_arm pat_list: [ {<Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <Id.Lit_Comma ','> <Id.Lit_Star '*'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:head) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$arg')} spids: [85] ) ] ) ] spids: [77 82 89 -1] ) (case_arm pat_list: [{<Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:remotes) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$remotes') ($ Id.VSub_DollarName '$arg') <' '>) } spids: [99] ) ] ) ] spids: [92 96 107 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bases) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$bases') ($ Id.VSub_DollarName '$arg') <' '>)} spids: [114] ) ] ) ] spids: [110 111 122 -1] ) ] ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$remotes'))} arms: [ (case_arm pat_list: [ {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> (SQ <' '>) <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] spids: [141 148 151 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>})] spids: [153 154 161 -1] ) ] ) (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:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] spids: [173 189] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MRC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<git>} {<rev-parse>} {<--verify>} {<-q>} {($ Id.VSub_DollarName '$head')}) ] ) ) } spids: [228] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MRT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<git>} {<write-tree>})]) ) } spids: [241] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NON_FF_MERGE) op: assign_op.Equal rhs: {<0>} spids: [248] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OCTOPUS_FAILURE) op: assign_op.Equal rhs: {<0>} spids: [251] ) ] ) (command.ForEach iter_name: SHA1 iter_words: [{($ Id.VSub_DollarName '$remotes')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$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: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [274 275 -1 309] ) ] ) (C {<eval>} {<Id.Lit_VarLike 'pretty_name='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <Id.Lit_LBrace '{'> <GITHEAD_> ($ Id.VSub_DollarName '$SHA1') <Id.Lit_Other ':'> <-> ($ Id.VSub_DollarName '$SHA1') <Id.Lit_RBrace '}'> } ) (command.If arms: [ (if_arm cond: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$SHA1'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$pretty_name'))} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SHA1_UP) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$SHA1'))}) (C {<tr>} {<a-z>} {<A-Z>}) ] negated: F ) ] ) ) ) } spids: [344] ) ] ) (C {<eval>} {<Id.Lit_VarLike 'pretty_name='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <Id.Lit_LBrace '{'> <GITHEAD_> ($ Id.VSub_DollarName '$SHA1_UP') <Id.Lit_Other ':'> <-> ($ Id.VSub_DollarName '$pretty_name') <Id.Lit_RBrace '}'> } ) ] spids: [326 341] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:common) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<git>} {<merge-base>} {<--all>} {($ Id.VSub_DollarName '$SHA1')} {($ Id.VSub_DollarName '$MRC')} ) ] ) ) } spids: [380] ) ] ) (C {<die>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<eval_gettext>} { (DQ <'Unable to find common commit with '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <pretty_name> ) } ) ] ) ) ) } ) ] ) (command.Case to_match: { (DQ ($ Id.VSub_DollarName '$LF') ($ Id.VSub_DollarName '$common') ($ Id.VSub_DollarName '$LF') ) } arms: [ (case_arm pat_list: [ {<Id.Lit_Star '*'> (DQ ($ Id.VSub_DollarName '$LF') ($ Id.VSub_DollarName '$SHA1') ($ Id.VSub_DollarName '$LF') ) <Id.Lit_Star '*'> } ] action: [ (C {<eval_gettextln>} { (DQ <'Already up-to-date with '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <pretty_name> ) } ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [423 430 445 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<test>} { (DQ ($ Id.VSub_DollarName '$common') <','> ($ Id.VSub_DollarName '$NON_FF_MERGE') ) } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$MRC') <',0'>)} ) ] action: [ (C {<eval_gettextln>} { (DQ <'Fast-forwarding to: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <pretty_name> ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<git>} {<read-tree>} {<-u>} {<-m>} {($ Id.VSub_DollarName '$head')} {($ Id.VSub_DollarName '$SHA1')} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MRC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$SHA1')} spids: [516] ) (assign_pair lhs: (sh_lhs_expr.Name name:MRT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<git>} {<write-tree>})] ) ) } spids: [519] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [452 470] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NON_FF_MERGE) op: assign_op.Equal rhs: {<1>} spids: [534] ) ] ) (C {<eval_gettextln>} { (DQ <'Trying simple merge with '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <pretty_name> ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<git>} {<read-tree>} {<-u>} {<-m>} {<--aggressive>} {($ Id.VSub_DollarName '$common')} {($ Id.VSub_DollarName '$MRT')} {($ Id.VSub_DollarName '$SHA1')} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:next) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [{<git>} {<write-tree>}] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] ) ) } spids: [571] ) ] ) (command.If arms: [ (if_arm cond: [(C {<test>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>})] action: [ (C {<gettextln>} {(DQ <'Simple merge did not work, trying automatic merge.'>)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<git-merge-index>} {<-o>} {<git-merge-one-file>} {<-a>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OCTOPUS_FAILURE) op: assign_op.Equal rhs: {<1>} spids: [614] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:next) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [{<git>} {<write-tree>}] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] ) ) } spids: [618] ) ] ) ] spids: [582 593] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MRC) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$MRC') <' '> ($ Id.VSub_DollarName '$SHA1'))} spids: [633] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MRT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$next')} spids: [641] ) ] ) ] ) ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {(DQ ($ Id.VSub_DollarName '$OCTOPUS_FAILURE'))} ) ] )