Merge branch 'sb/merge-commit-msg-hook' into next
authorJunio C Hamano <gitster@pobox.com>
Thu, 14 Sep 2017 08:40:38 +0000 (17:40 +0900)
committerJunio C Hamano <gitster@pobox.com>
Thu, 14 Sep 2017 08:40:38 +0000 (17:40 +0900)
As "git commit" to conclude a conflicted "git merge" honors the
commit-msg hook, "git merge" that recoreds a merge commit that
cleanly auto-merges should, but it didn't.

* sb/merge-commit-msg-hook:
builtin/merge: honor commit-msg hook for merges

1  2 
builtin/merge.c
diff --combined builtin/merge.c
index 3672e38974f094831c305d509b9582c146f94236,780435d7a1ffe904151437ba1df31084f4367d83..66b718678ec495161f0e283df31fadff5ac4e087
@@@ -73,6 -73,7 +73,7 @@@ static int show_progress = -1
  static int default_to_upstream = 1;
  static int signoff;
  static const char *sign_commit;
+ static int verify_msg = 1;
  
  static struct strategy all_strategy[] = {
        { "recursive",  DEFAULT_TWOHEAD | NO_TRIVIAL },
@@@ -236,6 -237,7 +237,7 @@@ static struct option builtin_merge_opti
          N_("GPG sign commit"), PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
        OPT_BOOL(0, "overwrite-ignore", &overwrite_ignore, N_("update ignored files (default)")),
        OPT_BOOL(0, "signoff", &signoff, N_("add Signed-off-by:")),
+       OPT_BOOL(0, "verify", &verify_msg, N_("verify commit-msg hook")),
        OPT_END()
  };
  
@@@ -780,6 -782,12 +782,12 @@@ static void prepare_to_commit(struct co
                if (launch_editor(git_path_merge_msg(), NULL, NULL))
                        abort_commit(remoteheads, NULL);
        }
+       if (verify_msg && run_commit_hook(0 < option_edit, get_index_file(),
+                                         "commit-msg",
+                                         git_path_merge_msg(), NULL))
+               abort_commit(remoteheads, NULL);
        read_merge_msg(&msg);
        strbuf_stripspace(&msg, 0 < option_edit);
        if (!msg.len)
@@@ -1359,7 -1367,7 +1367,7 @@@ int cmd_merge(int argc, const char **ar
                 * If head can reach all the merge then we are up to date.
                 * but first the most common case of merging one remote.
                 */
 -              finish_up_to_date(_("Already up-to-date."));
 +              finish_up_to_date(_("Already up to date."));
                goto done;
        } else if (fast_forward != FF_NO && !remoteheads->next &&
                        !common->next &&
                        }
                }
                if (up_to_date) {
 -                      finish_up_to_date(_("Already up-to-date. Yeeah!"));
 +                      finish_up_to_date(_("Already up to date. Yeeah!"));
                        goto done;
                }
        }