(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 (Token id:Id.Lit_Chars val:'\n' span_id:26))} 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 (Token id:Id.Lit_Chars val:' ' span_id:144)) (Id.Lit_QMark '?') (Id.Lit_Star '*') } ] spids: [141 148 151 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:157) 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 (Token id:Id.Lit_Chars val:'s/^/ /' span_id:218))}) ] negated: F ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:222) 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: (Token id:Id.Left_DollarParen val:'$(' span_id:229) 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: (Token id:Id.Left_DollarParen val:'$(' span_id:242) 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: (Token id:Id.ControlFlow_Exit val:exit span_id:304) arg_word: {(2)} ) ] spids: [274 275 -1 309] ) ] ) (C {(eval)} {(Id.Lit_VarLike 'pretty_name=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:316) ) (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: (Token id:Id.Left_DollarParen val:'$(' span_id:346) 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: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:367) ) (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: (Token id:Id.Left_DollarParen val:'$(' span_id:381) 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: (Token id:Id.Left_DollarParen val:'$(' span_id:399) command_list: (command.CommandList children: [ (C {(eval_gettext)} { (DQ ('Unable to find common commit with ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:404) ) (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: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:437) ) (pretty_name) ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:442) ) ] 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: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:494) ) (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: (Token id:Id.ControlFlow_Exit val:exit span_id:513) ) ] ) (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: (Token id:Id.Left_DollarParen val:'$(' span_id:520) command_list: (command.CommandList children: [(C {(git)} {(write-tree)})] ) ) } spids: [519] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:527) ) ] 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: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:543) ) (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: (Token id:Id.ControlFlow_Exit val:exit span_id:566) arg_word: {(2)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:next) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:572) command_list: (command.CommandList children: [ (command.Simple words: [{(git)} {(write-tree)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:577) 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: (Token id:Id.Left_DollarParen val:'$(' span_id:619) command_list: (command.CommandList children: [ (command.Simple words: [{(git)} {(write-tree)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:624) 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: (Token id:Id.ControlFlow_Exit val:exit span_id:647) arg_word: {(DQ ($ Id.VSub_DollarName '$OCTOPUS_FAILURE'))} ) ] )