From: Clemens Buchacher Date: Sat, 09 Oct 2010 13:52:56 GMT Subject: [PATCH 1/5] t7607: use test_commit and test_must_fail Message-ID: <1286632380-7002-2-git-send-email-drizzd@aon.at> In-Reply-To: <7v4oepaup7.fsf@alter.siamese.dyndns.org> 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@gitster.siamese.dyndns.org Signed-off-by: Clemens Buchacher --- 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