(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USAGE) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'<orig blob> <our blob> <their blob> <path>' span_id:54))} 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: (Token id:Id.ControlFlow_Exit val:exit span_id:106) arg_word: {(1)} ) ] spids: [85 96] ) ] ) (command.Case to_match: { (DQ (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:117) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(.)}) ) (braced_var_sub token: (Token id:Id.VSub_Number val:2 span_id:122) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(.)}) ) (braced_var_sub token: (Token id:Id.VSub_Number val:3 span_id:127) 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: [ (command.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: (Token id:Id.Op_Semi val:';' span_id:193) ) ] ) (command.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: (Token id:Id.Op_Semi val:';' span_id:224) ) ] ) ] ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ('ERROR: File ') ($ Id.VSub_Number '$4') (' deleted on one branch but had its') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:240) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('ERROR: permissions changed on the other.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:250) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:254) 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: (Token id:Id.Left_DollarParen val:'$(' span_id:358) command_list: (command.CommandList children: [ (C {(expr)} {(DQ (z) ($ Id.VSub_Number '$4'))} {(Id.Lit_Other ':')} {(SQ (Token id:Id.Lit_Chars val:'z\\(.*\\)/' span_id:369))} ) ] ) ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:374) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(Id.Lit_Other ':')}) ] ) ] 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.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:492) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:496) 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.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:591) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [ {(echo)} { (DQ ('ERROR: but permissions conflict ') ($ Id.VSub_Number '$6') ('->') ($ Id.VSub_Number '$7') (.) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:605) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:609) 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.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:723) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:727) 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.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:751) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:755) 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: (Token id:Id.Left_DollarParen val:'$(' span_id:768) command_list: (command.CommandList children: [(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: (Token id:Id.Left_DollarParen val:'$(' span_id:776) command_list: (command.CommandList children: [(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: (Token id:Id.Left_DollarParen val:'$(' span_id:807) command_list: (command.CommandList children: [ (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: (Token id:Id.Left_DollarParen val:'$(' span_id:830) command_list: (command.CommandList children: [(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 (Token id:Id.Lit_Chars val:'content conflict' span_id:895))} 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.Redir op: (Token id:Id.Redir_Great val:'>' span_id:939) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$4'))} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:946) 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.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1060) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1064) 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.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1105) fd: -1 arg_word: {(2)} ) ] ) ] spids: [1088 1089 1109 -1] ) ] ) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1113) arg_word:{(1)}) ] )