(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description) op: assign_op.Equal rhs: {(DQ <'merges with unrelated index changes'>)} spids: [4] ) ] redirects: [] ) (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>}) ] )