summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-06-13 19:50:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-06-13 19:50:22 (GMT)
commit0a17b2cd7ebc0beeab6121d96ce812f22994cc39 (patch)
tree85dd8e39916a822c2ce5ee98e284a19a9a632297
parent7d40f89137b456820d51ebc1cbb3ffbb966e7fec (diff)
parentc8c562a238071843c64ea0f3a2c85481606da379 (diff)
downloadgit-0a17b2cd7ebc0beeab6121d96ce812f22994cc39.zip
git-0a17b2cd7ebc0beeab6121d96ce812f22994cc39.tar.gz
git-0a17b2cd7ebc0beeab6121d96ce812f22994cc39.tar.bz2
Merge branch 'cb/maint-no-double-merge'
* cb/maint-no-double-merge: refuse to merge during a merge
-rw-r--r--builtin-merge.c5
-rwxr-xr-xt/t3030-merge-recursive.sh3
2 files changed, 7 insertions, 1 deletions
diff --git a/builtin-merge.c b/builtin-merge.c
index 8d101ef..793f2f4 100644
--- a/builtin-merge.c
+++ b/builtin-merge.c
@@ -836,8 +836,11 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
struct commit_list **remotes = &remoteheads;
setup_work_tree();
+ if (file_exists(git_path("MERGE_HEAD")))
+ die("You have not concluded your merge. (MERGE_HEAD exists)");
if (read_cache_unmerged())
- die("You are in the middle of a conflicted merge.");
+ die("You are in the middle of a conflicted merge."
+ " (index unmerged)");
/*
* Check if we are _not_ on a detached HEAD, i.e. if there is a
diff --git a/t/t3030-merge-recursive.sh b/t/t3030-merge-recursive.sh
index 0de613d..9b3fa2b 100755
--- a/t/t3030-merge-recursive.sh
+++ b/t/t3030-merge-recursive.sh
@@ -276,6 +276,9 @@ test_expect_success 'fail if the index has unresolved entries' '
test_must_fail git merge "$c5" &&
test_must_fail git merge "$c5" 2> out &&
+ grep "You have not concluded your merge" out &&
+ rm -f .git/MERGE_HEAD &&
+ test_must_fail git merge "$c5" 2> out &&
grep "You are in the middle of a conflicted merge" out
'