(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'combined diff show only paths that are different to all parents' span_id: 6 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: diffc_verify body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [ {(git)} {(diff)} {(-c)} {(--name-only)} {(HEAD)} {(HEAD) (Id.Lit_Other '^')} {(HEAD) (Id.Lit_Other '^') (2)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:46) fd: -1 arg_word: {(diffc.actual)} ) ] ) (C {(test_cmp)} {(diffc.expect)} {(diffc.actual)}) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'trivial merge - combine-diff empty' span_id:64))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:68) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 9)\n' span_id:69) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\techo $i >$i.txt\t&&\n' span_id:71) (Token id:Id.Lit_Chars val:'\t\tgit add $i.txt\n' span_id:72) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgit commit -m "init" &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\tgit checkout -b side &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 2 9)\n' span_id:76) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:77) (Token id:Id.Lit_Chars val:'\t\techo $i/2 >>$i.txt\n' span_id:78) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "side 2-9" &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\techo 1/2 >1.txt &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "master 1" &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\tgit merge side &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\t>diffc.expect &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\tdiffc_verify\n' span_id:86) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'only one trully conflicting path' span_id:94))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:98) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 2 9)\n' span_id:100) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:101) (Token id:Id.Lit_Chars val:'\t\techo $i/3 >>$i.txt\n' span_id:102) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\techo "4side" >>4.txt &&\n' span_id:104) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "side 2-9 +4" &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 9)\n' span_id:107) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:108) (Token id:Id.Lit_Chars val:'\t\techo $i/3 >>$i.txt\n' span_id:109) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\techo "4master" >>4.txt &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "master 1-9 +4" &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge side &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >4.txt &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\t4\n' span_id:115) (Token id:Id.Lit_Chars val:'\t4/2\n' span_id:116) (Token id:Id.Lit_Chars val:'\t4/3\n' span_id:117) (Token id:Id.Lit_Chars val:'\t4master\n' span_id:118) (Token id:Id.Lit_Chars val:'\t4side\n' span_id:119) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:120) (Token id:Id.Lit_Chars val:'\tgit add 4.txt &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\tgit commit -m "merge side (2)" &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\techo 4.txt >diffc.expect &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\tdiffc_verify\n' span_id:124) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge introduces new file' span_id:131))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:135) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:136) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 5 9)\n' span_id:137) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:138) (Token id:Id.Lit_Chars val:'\t\techo $i/4 >>$i.txt\n' span_id:139) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "side 5-9" &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 3)\n' span_id:143) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:144) (Token id:Id.Lit_Chars val:'\t\techo $i/4 >>$i.txt\n' span_id:145) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "master 1-3 +4hello" &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\tgit merge side &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\techo "Hello World" >4hello.txt &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\tgit add 4hello.txt &&\n' span_id:150) (Token id:Id.Lit_Chars val:'\tgit commit --amend &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\techo 4hello.txt >diffc.expect &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\tdiffc_verify\n' span_id:153) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge removed a file' span_id:160))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:164) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:165) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 5 9)\n' span_id:166) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:167) (Token id:Id.Lit_Chars val:'\t\techo $i/5 >>$i.txt\n' span_id:168) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "side 5-9" &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:171) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 3)\n' span_id:172) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:173) (Token id:Id.Lit_Chars val:'\t\techo $i/4 >>$i.txt\n' span_id:174) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:175) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "master 1-3" &&\n' span_id:176) (Token id:Id.Lit_Chars val:'\tgit merge side &&\n' span_id:177) (Token id:Id.Lit_Chars val:'\tgit rm 4.txt &&\n' span_id:178) (Token id:Id.Lit_Chars val:'\tgit commit --amend &&\n' span_id:179) (Token id:Id.Lit_Chars val:'\techo 4.txt >diffc.expect &&\n' span_id:180) (Token id:Id.Lit_Chars val:'\tdiffc_verify\n' span_id:181) ) } ) (C {(test_done)}) ] )