From: Junio C Hamano <gitster@pobox.com>
Date: Tue, 8 Nov 2011 00:29:34 +0000 (-0800)
Subject: merge: force edit and no-ff mode when merging a tag object
X-Git-Tag: v1.7.9-rc0~1^2~10
X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=fab47d057559301c74d6642576694fd251a3fd11;p=git.git

merge: force edit and no-ff mode when merging a tag object

Now that we allow pulling a tag from the remote site to validate the
authenticity, we should give the user the final chance to verify and edit
the merge message. The integrator is expected to leave a meaningful merge
commit log in the history. Disallow fast-forwarding in such a case to
ensure that a merge commit is always recorded.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

diff --git a/builtin/merge.c b/builtin/merge.c
index 7158e8e2d..99f1429b3 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -1253,6 +1253,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
 			    sha1_to_hex(commit->object.sha1));
 		setenv(buf.buf, argv[i], 1);
 		strbuf_reset(&buf);
+		if (merge_remote_util(commit) &&
+		    merge_remote_util(commit)->obj &&
+		    merge_remote_util(commit)->obj->type == OBJ_TAG) {
+			option_edit = 1;
+			allow_fast_forward = 0;
+		}
 	}
 
 	if (!use_strategies) {