Also make sure that aborted merges do not leave MERGE_HEAD except in the "will not overwrite removed file" test, where we cannot do so. See also the discussion in the following thread. http://mid.gmane.org/7vskopwxej.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Clemens Buchacher <drizzd@xxxxxx> --- t/t7607-merge-overwrite.sh | 78 +++++++++++++++++++------------------------ 1 files changed, 35 insertions(+), 43 deletions(-) diff --git a/t/t7607-merge-overwrite.sh b/t/t7607-merge-overwrite.sh index d82349a..6ed40b1 100755 --- a/t/t7607-merge-overwrite.sh +++ b/t/t7607-merge-overwrite.sh @@ -7,81 +7,73 @@ Do not overwrite changes.' . ./test-lib.sh test_expect_success 'setup' ' - echo c0 > c0.c && - git add c0.c && - git commit -m c0 && - git tag c0 && - echo c1 > c1.c && - git add c1.c && - git commit -m c1 && - git tag c1 && + test_commit c0 && + test_commit c1 && + test_commit "c1a" "c1.t" "c1 a" && git reset --hard c0 && - echo c2 > c2.c && - git add c2.c && - git commit -m c2 && - git tag c2 && - git reset --hard c1 && - echo "c1 a" > c1.c && - git add c1.c && - git commit -m "c1 a" && - git tag c1a && + test_commit c2 && echo "VERY IMPORTANT CHANGES" > important ' test_expect_success 'will not overwrite untracked file' ' git reset --hard c1 && - cat important > c2.c && + cp important c2.t && test_must_fail git merge c2 && - test_cmp important c2.c + ! test -f .git/MERGE_HEAD && + test_cmp important c2.t ' test_expect_success 'will not overwrite new file' ' git reset --hard c1 && - cat important > c2.c && - git add c2.c && + cp important c2.t && + git add c2.t && test_must_fail git merge c2 && - test_cmp important c2.c + ! test -f .git/MERGE_HEAD && + test_cmp important c2.t ' test_expect_success 'will not overwrite staged changes' ' git reset --hard c1 && - cat important > c2.c && - git add c2.c && - rm c2.c && + cp important c2.t && + git add c2.t && + rm c2.t && test_must_fail git merge c2 && - git checkout c2.c && - test_cmp important c2.c + ! test -f .git/MERGE_HEAD && + git checkout c2.t && + test_cmp important c2.t ' test_expect_success 'will not overwrite removed file' ' git reset --hard c1 && - git rm c1.c && - git commit -m "rm c1.c" && - cat important > c1.c && + git rm c1.t && + git commit -m "rm c1.t" && + cp important c1.t && test_must_fail git merge c1a && - test_cmp important c1.c + test_cmp important c1.t ' test_expect_success 'will not overwrite re-added file' ' git reset --hard c1 && - git rm c1.c && - git commit -m "rm c1.c" && - cat important > c1.c && - git add c1.c && + git rm c1.t && + git commit -m "rm c1.t" && + cp important c1.t && + git add c1.t && test_must_fail git merge c1a && - test_cmp important c1.c + ! test -f .git/MERGE_HEAD && + test_cmp important c1.t ' test_expect_success 'will not overwrite removed file with staged changes' ' git reset --hard c1 && - git rm c1.c && - git commit -m "rm c1.c" && - cat important > c1.c && - git add c1.c && - rm c1.c && + git rm c1.t && + git commit -m "rm c1.t" && + cp important c1.t && + git add c1.t && + rm c1.t && test_must_fail git merge c1a && - git checkout c1.c && - test_cmp important c1.c + ! test -f .git/MERGE_HEAD && + git checkout c1.t && + test_cmp important c1.t ' test_done -- 1.7.1.571.gba4d01 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html