(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(DQ ('merges with unrelated index changes'))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup trivial merges' span_id:61))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:65) (Token id:Id.Lit_Chars val:'\ttest_seq 1 10 >a &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\ttest_tick && git commit -m A &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\n' span_id:69) (Token id:Id.Lit_Chars val:'\tgit branch A &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\tgit branch B &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit branch C &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\tgit branch D &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgit branch E &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id:Id.Lit_Chars val:'\tgit checkout B &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\techo b >b &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\techo 11 >>a &&\n' span_id:78) (Token id:Id.Lit_Chars val:'\tgit add a b &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\ttest_tick && git commit -m B &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\n' span_id:81) (Token id:Id.Lit_Chars val:'\tgit checkout C &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\techo c >c &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\tgit add c &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\ttest_tick && git commit -m C &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\n' span_id:86) (Token id:Id.Lit_Chars val:'\tgit checkout D &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\ttest_seq 2 10 >a &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\techo d >d &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\tgit add a d &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\ttest_tick && git commit -m D &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\n' span_id:92) (Token id:Id.Lit_Chars val:'\tgit checkout E &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\tmkdir subdir &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\tgit mv a subdir/a &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\techo e >subdir/e &&\n' span_id:96) (Token id:Id.Lit_Chars val:'\tgit add subdir &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\ttest_tick && git commit -m E\n' span_id:98) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ff update' span_id:105))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:109) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\tgit checkout A^0 &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\n' span_id:112) (Token id:Id.Lit_Chars val:'\ttouch random_file && git add random_file &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\n' span_id:114) (Token id:Id.Lit_Chars val:'\tgit merge E^0 &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\n' span_id:116) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse HEAD:random_file &&\n' span_id:117) (Token id: Id.Lit_Chars val: '\ttest "$(git diff --name-only --cached E)" = "random_file"\n' span_id: 118 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ff update, important file modified' span_id:125))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:129) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\tgit checkout A^0 &&\n' span_id:131) (Token id:Id.Lit_Chars val:'\n' span_id:132) (Token id:Id.Lit_Chars val:'\tmkdir subdir &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\ttouch subdir/e &&\n' span_id:134) (Token id:Id.Lit_Chars val:'\tgit add subdir/e &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\n' span_id:136) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge E^0\n' span_id:137) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'resolve, trivial' span_id:144))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:148) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:150) (Token id:Id.Lit_Chars val:'\n' span_id:151) (Token id:Id.Lit_Chars val:'\ttouch random_file && git add random_file &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\n' span_id:153) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge -s resolve C^0\n' span_id:154) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'resolve, non-trivial' span_id:161))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:165) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:166) (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:167) (Token id:Id.Lit_Chars val:'\n' span_id:168) (Token id:Id.Lit_Chars val:'\ttouch random_file && git add random_file &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\n' span_id:170) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge -s resolve D^0\n' span_id:171) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:recursive span_id:178))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:182) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:183) (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:184) (Token id:Id.Lit_Chars val:'\n' span_id:185) (Token id:Id.Lit_Chars val:'\ttouch random_file && git add random_file &&\n' span_id:186) (Token id:Id.Lit_Chars val:'\n' span_id:187) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge -s recursive C^0\n' span_id:188) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'octopus, unrelated file touched' span_id:195))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:199) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:200) (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:201) (Token id:Id.Lit_Chars val:'\n' span_id:202) (Token id:Id.Lit_Chars val:'\ttouch random_file && git add random_file &&\n' span_id:203) (Token id:Id.Lit_Chars val:'\n' span_id:204) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge C^0 D^0\n' span_id:205) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'octopus, related file removed' span_id:212))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:216) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:217) (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:218) (Token id:Id.Lit_Chars val:'\n' span_id:219) (Token id:Id.Lit_Chars val:'\tgit rm b &&\n' span_id:220) (Token id:Id.Lit_Chars val:'\n' span_id:221) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge C^0 D^0\n' span_id:222) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'octopus, related file modified' span_id:229))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:233) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:234) (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:235) (Token id:Id.Lit_Chars val:'\n' span_id:236) (Token id:Id.Lit_Chars val:'\techo 12 >>a && git add a &&\n' span_id:237) (Token id:Id.Lit_Chars val:'\n' span_id:238) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge C^0 D^0\n' span_id:239) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:ours span_id:246))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:250) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:251) (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:252) (Token id:Id.Lit_Chars val:'\n' span_id:253) (Token id:Id.Lit_Chars val:'\ttouch random_file && git add random_file &&\n' span_id:254) (Token id:Id.Lit_Chars val:'\n' span_id:255) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge -s ours C^0\n' span_id:256) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:subtree span_id:263))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:267) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:268) (Token id:Id.Lit_Chars val:'\tgit checkout B^0 &&\n' span_id:269) (Token id:Id.Lit_Chars val:'\n' span_id:270) (Token id:Id.Lit_Chars val:'\ttouch random_file && git add random_file &&\n' span_id:271) (Token id:Id.Lit_Chars val:'\n' span_id:272) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge -s subtree E^0\n' span_id:273) ) } ) (C {(test_done)}) ] )