(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(DQ ("merges with unrelated index changes"))} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <"setup trivial merges">)} { (SQ <"\n"> <"\ttest_seq 1 10 >a &&\n"> <"\tgit add a &&\n"> <"\ttest_tick && git commit -m A &&\n"> <"\n"> <"\tgit branch A &&\n"> <"\tgit branch B &&\n"> <"\tgit branch C &&\n"> <"\tgit branch D &&\n"> <"\tgit branch E &&\n"> <"\n"> <"\tgit checkout B &&\n"> <"\techo b >b &&\n"> <"\techo 11 >>a &&\n"> <"\tgit add a b &&\n"> <"\ttest_tick && git commit -m B &&\n"> <"\n"> <"\tgit checkout C &&\n"> <"\techo c >c &&\n"> <"\tgit add c &&\n"> <"\ttest_tick && git commit -m C &&\n"> <"\n"> <"\tgit checkout D &&\n"> <"\ttest_seq 2 10 >a &&\n"> <"\techo d >d &&\n"> <"\tgit add a d &&\n"> <"\ttest_tick && git commit -m D &&\n"> <"\n"> <"\tgit checkout E &&\n"> <"\tmkdir subdir &&\n"> <"\tgit mv a subdir/a &&\n"> <"\techo e >subdir/e &&\n"> <"\tgit add subdir &&\n"> <"\ttest_tick && git commit -m E\n"> ) } ) (C {(test_expect_success)} {(SQ <"ff update">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout A^0 &&\n"> <"\n"> <"\ttouch random_file && git add random_file &&\n"> <"\n"> <"\tgit merge E^0 &&\n"> <"\n"> <"\ttest_must_fail git rev-parse HEAD:random_file &&\n"> <"\ttest \"$(git diff --name-only --cached E)\" = \"random_file\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"ff update, important file modified">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout A^0 &&\n"> <"\n"> <"\tmkdir subdir &&\n"> <"\ttouch subdir/e &&\n"> <"\tgit add subdir/e &&\n"> <"\n"> <"\ttest_must_fail git merge E^0\n"> ) } ) (C {(test_expect_success)} {(SQ <"resolve, trivial">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\ttouch random_file && git add random_file &&\n"> <"\n"> <"\ttest_must_fail git merge -s resolve C^0\n"> ) } ) (C {(test_expect_success)} {(SQ <"resolve, non-trivial">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\ttouch random_file && git add random_file &&\n"> <"\n"> <"\ttest_must_fail git merge -s resolve D^0\n"> ) } ) (C {(test_expect_success)} {(SQ <recursive>)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\ttouch random_file && git add random_file &&\n"> <"\n"> <"\ttest_must_fail git merge -s recursive C^0\n"> ) } ) (C {(test_expect_success)} {(SQ <"octopus, unrelated file touched">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\ttouch random_file && git add random_file &&\n"> <"\n"> <"\ttest_must_fail git merge C^0 D^0\n"> ) } ) (C {(test_expect_success)} {(SQ <"octopus, related file removed">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\tgit rm b &&\n"> <"\n"> <"\ttest_must_fail git merge C^0 D^0\n"> ) } ) (C {(test_expect_success)} {(SQ <"octopus, related file modified">)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\techo 12 >>a && git add a &&\n"> <"\n"> <"\ttest_must_fail git merge C^0 D^0\n"> ) } ) (C {(test_expect_success)} {(SQ <ours>)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\ttouch random_file && git add random_file &&\n"> <"\n"> <"\ttest_must_fail git merge -s ours C^0\n"> ) } ) (C {(test_expect_success)} {(SQ <subtree>)} { (SQ <"\n"> <"\tgit reset --hard &&\n"> <"\tgit checkout B^0 &&\n"> <"\n"> <"\ttouch random_file && git add random_file &&\n"> <"\n"> <"\ttest_must_fail git merge -s subtree E^0\n"> ) } ) (C {(test_done)}) ] )