(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USAGE) op: assign_op.Equal rhs: {(SQ <'<orig blob> <our blob> <their blob> <path>'>)} spids: [52] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USAGE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$USAGE') <' <orig mode> <our mode> <their mode>'>)} spids: [57] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LONG_USAGE) op: assign_op.Equal rhs: { (DQ <'usage: git merge-one-file '> ($ Id.VSub_DollarName '$USAGE') <'\n'> <'\n'> <'Blob ids and modes should be empty for missing files.'> ) } spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SUBDIRECTORY_OK) op: assign_op.Equal rhs: {<Yes>} spids: [73] ) ] ) (C {<.>} {<git-sh-setup>}) (C {<cd_to_toplevel>}) (C {<require_work_tree>}) (command.If arms: [ (if_arm cond: [(C {<test>} {($ Id.VSub_Pound '$#')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<7>})] action: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$LONG_USAGE'))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [85 96] ) ] ) (command.Case to_match: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<.>}) ) (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<.>}) ) (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<.>}) ) ) } arms: [ (case_arm pat_list: [ {(DQ ($ Id.VSub_Number '$1') <..>)} {(DQ ($ Id.VSub_Number '$1') <.> ($ Id.VSub_Number '$1'))} {(DQ ($ Id.VSub_Number '$1') ($ Id.VSub_Number '$1') <.>)} ] action: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (BraceGroup children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-z>} {(DQ ($ Id.VSub_Number '$6'))}) (C {<test>} {(DQ ($ Id.VSub_Number '$5'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_Number '$7'))} ) ] ) terminator: <Id.Op_Semi _> ) ] ) (BraceGroup children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-z>} {(DQ ($ Id.VSub_Number '$7'))}) (C {<test>} {(DQ ($ Id.VSub_Number '$5'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_Number '$6'))} ) ] ) terminator: <Id.Op_Semi _> ) ] ) ] ) ] action: [ (command.Simple words: [ {<echo>} { (DQ <'ERROR: File '> ($ Id.VSub_Number '$4') <' deleted on one branch but had its'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'ERROR: permissions changed on the other.'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [167 229] ) ] ) (command.If arms: [ (if_arm cond: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))})] action: [(C {<echo>} {(DQ <'Removing '> ($ Id.VSub_Number '$4'))})] spids: [263 274] ) ] else_action: [ (C {<exec>} {<git>} {<update-index>} {<--remove>} {<-->} {(DQ ($ Id.VSub_Number '$4'))}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.If arms: [ (if_arm cond: [(C {<test>} {<-f>} {(DQ ($ Id.VSub_Number '$4'))})] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<rm>} {<-f>} {<-->} {(DQ ($ Id.VSub_Number '$4'))}) (command.Simple words: [ {<rmdir>} {<-p>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<expr>} {(DQ <z> ($ Id.VSub_Number '$4'))} {<Id.Lit_Colon ':'>} {(SQ <'z\\(.*\\)/'>)} ) ) ) } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<Id.Lit_Colon ':'>}) ] ) ] spids: [326 337] ) ] ) (C {<exec>} {<git>} {<update-index>} {<--remove>} {<-->} {(DQ ($ Id.VSub_Number '$4'))}) ] ) ] spids: [144 164 402 -1] ) (case_arm pat_list: [{(DQ <.> ($ Id.VSub_Number '$2') <.>)}] action: [ (C {<exec>} {<git>} {<update-index>} {<--add>} {<--cacheinfo>} {(DQ ($ Id.VSub_Number '$6'))} {(DQ ($ Id.VSub_Number '$2'))} {(DQ ($ Id.VSub_Number '$4'))} ) ] spids: [414 419 453 -1] ) (case_arm pat_list: [{(DQ <..> ($ Id.VSub_Number '$3'))}] action: [ (C {<echo>} {(DQ <'Adding '> ($ Id.VSub_Number '$4'))}) (command.If arms: [ (if_arm cond: [(C {<test>} {<-f>} {(DQ ($ Id.VSub_Number '$4'))})] action: [ (command.Simple words: [ {<echo>} { (DQ <'ERROR: untracked '> ($ Id.VSub_Number '$4') <' is overwritten by the merge.'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [470 481] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<git>} {<update-index>} {<--add>} {<--cacheinfo>} {(DQ ($ Id.VSub_Number '$7'))} {(DQ ($ Id.VSub_Number '$3'))} {(DQ ($ Id.VSub_Number '$4'))} ) (C {<exec>} {<git>} {<checkout-index>} {<-u>} {<-f>} {<-->} {(DQ ($ Id.VSub_Number '$4'))}) ] ) ] spids: [455 459 544 -1] ) (case_arm pat_list: [{(DQ <.> ($ Id.VSub_Number '$3') ($ Id.VSub_Number '$2'))}] action: [ (command.If arms: [ (if_arm cond: [ (C {<test>} {(DQ ($ Id.VSub_Number '$6'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_Number '$7'))} ) ] action: [ (command.Simple words: [ {<echo>} { (DQ <'ERROR: File '> ($ Id.VSub_Number '$4') <' added identically in both branches,'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [ {<echo>} { (DQ <'ERROR: but permissions conflict '> ($ Id.VSub_Number '$6') <'->'> ($ Id.VSub_Number '$7') <.> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [564 580] ) ] ) (C {<echo>} {(DQ <'Adding '> ($ Id.VSub_Number '$4'))}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<git>} {<update-index>} {<--add>} {<--cacheinfo>} {(DQ ($ Id.VSub_Number '$6'))} {(DQ ($ Id.VSub_Number '$2'))} {(DQ ($ Id.VSub_Number '$4'))} ) (C {<exec>} {<git>} {<checkout-index>} {<-u>} {<-f>} {<-->} {(DQ ($ Id.VSub_Number '$4'))}) ] ) ] spids: [556 561 665 -1] ) (case_arm pat_list: [ {(DQ ($ Id.VSub_Number '$1') ($ Id.VSub_Number '$2') ($ Id.VSub_Number '$3'))} {(DQ <.> ($ Id.VSub_Number '$2') ($ Id.VSub_Number '$3'))} ] action: [ (command.Case to_match: {(DQ <','> ($ Id.VSub_Number '$6') <','> ($ Id.VSub_Number '$7') <','>)} arms: [ (case_arm pat_list: [ {<Id.Lit_Star '*'> <Id.Lit_Comma ','> <120000> <Id.Lit_Comma ','> <Id.Lit_Star '*'>} ] action: [ (command.Simple words: [ {<echo>} { (DQ <'ERROR: '> ($ Id.VSub_Number '$4') <': Not merging symbolic link changes.'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [707 712 732 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> <Id.Lit_Comma ','> <160000> <Id.Lit_Comma ','> <Id.Lit_Star '*'>} ] action: [ (command.Simple words: [ {<echo>} { (DQ <'ERROR: '> ($ Id.VSub_Number '$4') <': Not merging conflicting submodule changes.'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [735 740 760 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:src1) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git-unpack-file>} {($ Id.VSub_Number '$2')}) ) } spids: [767] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:src2) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git-unpack-file>} {($ Id.VSub_Number '$3')}) ) } spids: [775] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {<echo>} {(DQ <'Added '> ($ Id.VSub_Number '$4') <' in both, but differently.'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:orig) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git-unpack-file>} {<e69de29bb2d1d6434b8b29ae775ad8c2e48c5391>}) ) } spids: [806] ) ] ) ] spids: [792 794 814 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ <'Auto-merging '> ($ Id.VSub_Number '$4'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:orig) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git-unpack-file>} {($ Id.VSub_Number '$1')}) ) } spids: [829] ) ] ) ] spids: [817 818 837 -1] ) ] ) (C {<git>} {<merge-file>} {(DQ ($ Id.VSub_DollarName '$src1'))} {(DQ ($ Id.VSub_DollarName '$orig'))} {(DQ ($ Id.VSub_DollarName '$src2'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [861] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:msg) op: assign_op.Equal rhs: (word.Empty) spids: [865] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {($ Id.VSub_DollarName '$ret')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} ) (C {<test>} {<-z>} {(DQ ($ Id.VSub_Number '$1'))}) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:msg) op: assign_op.Equal rhs: {(SQ <'content conflict'>)} spids: [893] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ret) op: assign_op.Equal rhs: {<1>} spids: [899] ) ] ) ] spids: [868 890] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<git>} {<checkout-index>} {<-f>} {<--stage> <Id.Lit_Equals '='> <2>} {<-->} {(DQ ($ Id.VSub_Number '$4'))} ) (command.Simple words: [{<cat>} {(DQ ($ Id.VSub_DollarName '$src1'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_Number '$4'))} ) ] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<rm>} {<-f>} {<-->} {(DQ ($ Id.VSub_DollarName '$orig'))} {(DQ ($ Id.VSub_DollarName '$src1'))} {(DQ ($ Id.VSub_DollarName '$src2'))} ) (command.If arms: [ (if_arm cond: [ (C {<test>} {(DQ ($ Id.VSub_Number '$6'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_Number '$7'))} ) ] action: [ (command.If arms: [ (if_arm cond: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$msg'))})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:msg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$msg') <', '>)} spids: [1004] ) ] ) ] spids: [990 1001] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:msg) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name msg) <'permissions conflict: '> ($ Id.VSub_Number '$5') <'->'> ($ Id.VSub_Number '$6') <','> ($ Id.VSub_Number '$7') ) } spids: [1014] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ret) op: assign_op.Equal rhs: {<1>} spids: [1028] ) ] ) ] spids: [971 987] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<test>} {($ Id.VSub_DollarName '$ret')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} ) ] action: [ (command.Simple words: [ {<echo>} { (DQ <'ERROR: '> ($ Id.VSub_DollarName '$msg') <' in '> ($ Id.VSub_Number '$4')) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1036 1048] ) ] ) (C {<exec>} {<git>} {<update-index>} {<-->} {(DQ ($ Id.VSub_Number '$4'))}) ] spids: [677 690 1085 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} { (DQ <'ERROR: '> ($ Id.VSub_Number '$4') <': Not handling case '> ($ Id.VSub_Number '$1') <' -> '> ($ Id.VSub_Number '$2') <' -> '> ($ Id.VSub_Number '$3') ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] spids: [1088 1089 1109 -1] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] )