merge: force edit and no-ff mode when merging a tag object
authorJunio C Hamano <gitster@pobox.com>
Tue, 8 Nov 2011 00:29:34 +0000 (16:29 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 9 Nov 2011 18:29:42 +0000 (10:29 -0800)
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>
builtin/merge.c

index 7158e8e2d2e24145ffa77233a2e1071fa445a025..99f1429b350b69055244fe77ae769ae89bea809c 100644 (file)
@@ -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) {