(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'git blame on conflicted files'>)} spids: [8] ) ] spids: [8] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <'setup first case'>)} { (SQ <'\n'> <'\t# Create the old file\n'> <'\techo "Old line" > file1 &&\n'> <'\tgit add file1 &&\n'> <'\tgit commit --author "Old Line <ol@localhost>" -m file1.a &&\n'> <'\n'> <'\t# Branch\n'> <'\tgit checkout -b foo &&\n'> <'\n'> <'\t# Do an ugly move and change\n'> <'\tgit rm file1 &&\n'> <'\techo "New line ..." > file2 &&\n'> <'\techo "... and more" >> file2 &&\n'> <'\tgit add file2 &&\n'> <'\tgit commit --author "U Gly <ug@localhost>" -m ugly &&\n'> <'\n'> <'\t# Back to master and change something\n'> <'\tgit checkout master &&\n'> <'\techo "\n'> <'\n'> <'bla" >> file1 &&\n'> <'\tgit commit --author "Old Line <ol@localhost>" -a -m file1.b &&\n'> <'\n'> <'\t# Back to foo and merge master\n'> <'\tgit checkout foo &&\n'> <'\tif git merge master; then\n'> <'\t\techo needed conflict here\n'> <'\t\texit 1\n'> <'\telse\n'> <'\t\techo merge failed - resolving automatically\n'> <'\tfi &&\n'> <'\techo "New line ...\n'> <'... and more\n'> <'\n'> <'bla\n'> <'Even more" > file2 &&\n'> <'\tgit rm file1 &&\n'> <'\tgit commit --author "M Result <mr@localhost>" -a -m merged &&\n'> <'\n'> <'\t# Back to master and change file1 again\n'> <'\tgit checkout master &&\n'> <'\tsed s/bla/foo/ <file1 >X &&\n'> <'\trm file1 &&\n'> <'\tmv X file1 &&\n'> <'\tgit commit --author "No Bla <nb@localhost>" -a -m replace &&\n'> <'\n'> <'\t# Try to merge into foo again\n'> <'\tgit checkout foo &&\n'> <'\tif git merge master; then\n'> <'\t\techo needed conflict here\n'> <'\t\texit 1\n'> <'\telse\n'> <'\t\techo merge failed - test is setup\n'> <'\tfi\n'> ) } ) (C {(test_expect_success)} {(SQ <'blame runs on unconflicted file while other file has conflicts'>)} {(SQ <'\n'> <'\tgit blame file2\n'>)} ) (C {(test_expect_success)} {(SQ <'blame does not crash with conflicted file in stages 1,3'>)} {(SQ <'\n'> <'\tgit blame file1\n'>)} ) (C {(test_done)}) ] )