(List (= scope= flags=0 words=[] bindings=[('USAGE', {[SQ ">]})]) (= scope= flags=0 words=[] bindings=[('USAGE', {[DQ [VarSub USAGE][LIT_CHARS " "]]})]) (= scope= flags=0 words=[] bindings=[('LONG_USAGE', {[DQ [LIT_CHARS "usage: git merge-one-file "][VarSub USAGE][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "Blob ids and modes should be empty for missing files."]]})]) (= scope= flags=0 words=[] bindings=[('SUBDIRECTORY_OK', {[LIT_CHARS Yes]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]}) (Com {[LIT_CHARS cd_to_toplevel]}) (Com {[LIT_CHARS require_work_tree]}) (If (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS 7]}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub LONG_USAGE]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Case to_match={[DQ [VarSub 1 test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS .]}][VarSub 2 test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS .]}][VarSub 3 test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS .]}]]}, pat_word_list=[[{[DQ [VarSub 1][LIT_CHARS ..]]}, {[DQ [VarSub 1][LIT_CHARS .][VarSub 1]]}, {[DQ [VarSub 1][VarSub 1][LIT_CHARS .]]}], [{[DQ [LIT_CHARS .][VarSub 2][LIT_CHARS .]]}], [{[DQ [LIT_CHARS ..][VarSub 3]]}], [{[DQ [LIT_CHARS .][VarSub 3][VarSub 2]]}], [{[DQ [VarSub 1][VarSub 2][VarSub 3]]}, {[DQ [LIT_CHARS .][VarSub 2][VarSub 3]]}], [{[LIT_OTHER "*"]}]] (List (If (AndOr OP_OR_IF (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub 6]]}) (Com {[LIT_CHARS test]} {[DQ [VarSub 5]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub 7]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub 7]]}) (Com {[LIT_CHARS test]} {[DQ [VarSub 5]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub 6]]}) ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: File "][VarSub 4][LIT_CHARS " deleted on one branch but had its"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: permissions changed on the other."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub 2]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Removing "][VarSub 4]]}) (ElseTrue) (Com {[LIT_CHARS exec]} {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --remove]} {[LIT_CHARS --]} {[DQ [VarSub 4]]}) ) (AndOr OP_AND_IF (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub 4]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS --]} {[DQ [VarSub 4]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS rmdir]} {[LIT_CHARS -p]} {[DQ [ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub 4]]} {[LIT_OTHER ":"]} {[SQ ]})]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_OTHER ":"]}) ) ) ) (Com {[LIT_CHARS exec]} {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --remove]} {[LIT_CHARS --]} {[DQ [VarSub 4]]}) ) ) (Com {[LIT_CHARS exec]} {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --add]} {[LIT_CHARS --cacheinfo]} {[DQ [VarSub 6]]} {[DQ [VarSub 2]]} {[DQ [VarSub 4]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Adding "][VarSub 4]]}) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub 4]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: untracked "][VarSub 4][LIT_CHARS " is overwritten by the merge."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --add]} {[LIT_CHARS --cacheinfo]} {[DQ [VarSub 7]]} {[DQ [VarSub 3]]} {[DQ [VarSub 4]]}) (Com {[LIT_CHARS exec]} {[LIT_CHARS git]} {[LIT_CHARS checkout-index]} {[LIT_CHARS -u]} {[LIT_CHARS -f]} {[LIT_CHARS --]} {[DQ [VarSub 4]]}) ) ) (List (If (Com {[LIT_CHARS test]} {[DQ [VarSub 6]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub 7]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: File "][VarSub 4][LIT_CHARS " added identically in both branches,"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: but permissions conflict "][VarSub 6][LIT_CHARS "->"][VarSub 7][LIT_CHARS .]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Adding "][VarSub 4]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --add]} {[LIT_CHARS --cacheinfo]} {[DQ [VarSub 6]]} {[DQ [VarSub 2]]} {[DQ [VarSub 4]]}) (Com {[LIT_CHARS exec]} {[LIT_CHARS git]} {[LIT_CHARS checkout-index]} {[LIT_CHARS -u]} {[LIT_CHARS -f]} {[LIT_CHARS --]} {[DQ [VarSub 4]]}) ) ) (List (Case to_match={[DQ [LIT_CHARS ","][VarSub 6][LIT_CHARS ","][VarSub 7][LIT_CHARS ","]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_CHARS 120000] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_CHARS 160000] [LIT_COMMA ","] [LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: "][VarSub 4][LIT_CHARS ": Not merging symbolic link changes."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: "][VarSub 4][LIT_CHARS ": Not merging conflicting submodule changes."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('src1', {[ComSub (Com {[LIT_CHARS git-unpack-file]} {[VarSub 2]})]})]) (= scope= flags=0 words=[] bindings=[('src2', {[ComSub (Com {[LIT_CHARS git-unpack-file]} {[VarSub 3]})]})]) (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[SQ ]}], [{[LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Added "][VarSub 4][LIT_CHARS " in both, but differently."]]}) (= scope= flags=0 words=[] bindings=[('orig', {[ComSub (Com {[LIT_CHARS git-unpack-file]} {[LIT_CHARS e69de29bb2d1d6434b8b29ae775ad8c2e48c5391]})]})]) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Auto-merging "][VarSub 4]]}) (= scope= flags=0 words=[] bindings=[('orig', {[ComSub (Com {[LIT_CHARS git-unpack-file]} {[VarSub 1]})]})]) ) ) (Com {[LIT_CHARS git]} {[LIT_CHARS merge-file]} {[DQ [VarSub src1]]} {[DQ [VarSub orig]]} {[DQ [VarSub src2]]}) (= scope= flags=0 words=[] bindings=[('ret', {[VarSub ?]})]) (= scope= flags=0 words=[] bindings=[('msg', {[SQ ]})]) (If (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[VarSub ret]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]}) ) (List (= scope= flags=0 words=[] bindings=[('msg', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('ret', {[LIT_CHARS 1]})]) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS checkout-index]} {[LIT_CHARS -f]} {[LIT_CHARS --stage] [LIT_OTHER "="] [LIT_CHARS 2]} {[LIT_CHARS --]} {[DQ [VarSub 4]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS cat]} {[DQ [VarSub src1]]} < (FilenameRedirectNode filename={[DQ [VarSub 4]]} "> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS --]} {[DQ [VarSub orig]]} {[DQ [VarSub src1]]} {[DQ [VarSub src2]]}) (If (Com {[LIT_CHARS test]} {[DQ [VarSub 6]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub 7]]}) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub msg]]}) (= scope= flags=0 words=[] bindings=[('msg', {[DQ [VarSub msg][LIT_CHARS ", "]]})]) ) (= scope= flags=0 words=[] bindings=[('msg', {[DQ [VarSub msg][LIT_CHARS "permissions conflict: "][VarSub 5][LIT_CHARS "->"][VarSub 6][LIT_CHARS ","][VarSub 7]]})]) (= scope= flags=0 words=[] bindings=[('ret', {[LIT_CHARS 1]})]) ) ) (If (Com {[LIT_CHARS test]} {[VarSub ret]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS 0]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: "][VarSub msg][LIT_CHARS " in "][VarSub 4]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS exec]} {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --]} {[DQ [VarSub 4]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: "][VarSub 4][LIT_CHARS ": Not handling case "][VarSub 1][LIT_CHARS " -> "][VarSub 2][LIT_CHARS " -> "][VarSub 3]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) )