(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"Test criss-cross merge">)} spids: [21] ) ] spids: [21] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <"prepare repository">)} { (SQ <"echo \"1\n"> <"2\n"> <"3\n"> <"4\n"> <"5\n"> <"6\n"> <"7\n"> <"8\n"> <"9\" > file &&\n"> <"git add file &&\n"> <"git commit -m \"Initial commit\" file &&\n"> <"git branch A &&\n"> <"git branch B &&\n"> <"git checkout A &&\n"> <"echo \"1\n"> <"2\n"> <"3\n"> <"4\n"> <"5\n"> <"6\n"> <"7\n"> <"8 changed in B8, branch A\n"> <"9\" > file &&\n"> <"git commit -m \"B8\" file &&\n"> <"git checkout B &&\n"> <"echo \"1\n"> <"2\n"> <"3 changed in C3, branch B\n"> <"4\n"> <"5\n"> <"6\n"> <"7\n"> <"8\n"> <"9\n"> <"\" > file &&\n"> <"git commit -m \"C3\" file &&\n"> <"git branch C3 &&\n"> <"git merge -m \"pre E3 merge\" A &&\n"> <"echo \"1\n"> <"2\n"> <"3 changed in E3, branch B. New file size\n"> <"4\n"> <"5\n"> <"6\n"> <"7\n"> <"8 changed in B8, branch A\n"> <"9\n"> <"\" > file &&\n"> <"git commit -m \"E3\" file &&\n"> <"git checkout A &&\n"> <"git merge -m \"pre D8 merge\" C3 &&\n"> <"echo \"1\n"> <"2\n"> <"3 changed in C3, branch B\n"> <"4\n"> <"5\n"> <"6\n"> <"7\n"> <"8 changed in D8, branch A. New file size 2\n"> <"9\" > file &&\n"> <"git commit -m D8 file"> ) } ) (C {(test_expect_success)} {(SQ <"Criss-cross merge">)} {(SQ <"git merge -m \"final merge\" B">)}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(file-expect)} spids:[116]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("1\n") ("2\n") ("3 changed in E3, branch B. New file size\n") ("4\n") ("5\n") ("6\n") ("7\n") ("8 changed in D8, branch A. New file size 2\n") ("9\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [120] ) ] ) (C {(test_expect_success)} {(SQ <"Criss-cross merge result">)} {(SQ <"cmp file file-expect">)}) (C {(test_expect_success)} {(SQ <"Criss-cross merge fails (-s resolve)">)} { (SQ <"git reset --hard A^ &&\n"> <"test_must_fail git merge -s resolve -m \"final merge\" B">) } ) (C {(test_done)}) ] )