summaryrefslogtreecommitdiff
path: root/sequencer.c
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2017-03-23 16:07:17 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-03-27 20:55:13 (GMT)
commitb92ff6e81429c6a2636b4d6d26ab9ce5d4890fe8 (patch)
treecd8f3b4c98c4a8609eeebb7639688aceb7be8735 /sequencer.c
parent789b3effec89e6f336726de109eb8be9dc60b7a5 (diff)
downloadgit-b92ff6e81429c6a2636b4d6d26ab9ce5d4890fe8.zip
git-b92ff6e81429c6a2636b4d6d26ab9ce5d4890fe8.tar.gz
git-b92ff6e81429c6a2636b4d6d26ab9ce5d4890fe8.tar.bz2
sequencer: allow the commit-msg hooks to run during a `reword`
The `reword` command used to call `git commit` in a manner that asks for the prepare-commit-msg and commit-msg hooks to do their thing. Converting that part of the interactive rebase to C code introduced the regression where those hooks were no longer run. Let's fix this. Note: the flag is called `VERIFY_MSG` instead of the more intuitive `RUN_COMMIT_MSG_HOOKS` to indicate that the flag suppresses the `--no-verify` flag (which may do other things in the future in addition to suppressing the commit message hooks, too). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sequencer.c')
-rw-r--r--sequencer.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sequencer.c b/sequencer.c
index 677e6ef..d53ca44 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -606,6 +606,7 @@ N_("you have staged changes in your working tree\n"
#define EDIT_MSG (1<<1)
#define AMEND_MSG (1<<2)
#define CLEANUP_MSG (1<<3)
+#define VERIFY_MSG (1<<4)
/*
* If we are cherry-pick, and if the merge did not result in
@@ -642,8 +643,9 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
}
argv_array_push(&cmd.args, "commit");
- argv_array_push(&cmd.args, "-n");
+ if (!(flags & VERIFY_MSG))
+ argv_array_push(&cmd.args, "-n");
if ((flags & AMEND_MSG))
argv_array_push(&cmd.args, "--amend");
if (opts->gpg_sign)
@@ -996,6 +998,8 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
if (res || command != TODO_REWORD)
goto leave;
flags |= EDIT_MSG | AMEND_MSG;
+ if (command == TODO_REWORD)
+ flags |= VERIFY_MSG;
msg_file = NULL;
goto fast_forward_edit;
}
@@ -1050,7 +1054,7 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
}
if (command == TODO_REWORD)
- flags |= EDIT_MSG;
+ flags |= EDIT_MSG | VERIFY_MSG;
else if (is_fixup(command)) {
if (update_squash_messages(command, commit, opts))
return -1;