summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhillip Wood <phillip.wood@dunelm.org.uk>2019-10-15 10:25:32 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-10-16 01:30:51 (GMT)
commit4627bc777e9ade5e3a85d6b8e8630fc4b6e2f8f6 (patch)
tree1d27773ca75cd53618d072a164ccb22db703ce79
parent49697cb72122cf84b44111124821c9a4bcba3ab6 (diff)
downloadgit-4627bc777e9ade5e3a85d6b8e8630fc4b6e2f8f6.zip
git-4627bc777e9ade5e3a85d6b8e8630fc4b6e2f8f6.tar.gz
git-4627bc777e9ade5e3a85d6b8e8630fc4b6e2f8f6.tar.bz2
sequencer: run post-commit hook
Prior to commit 356ee4659b ("sequencer: try to commit without forking 'git commit'", 2017-11-24) the sequencer would always run the post-commit hook after each pick or revert as it forked `git commit` to create the commit. The conversion to committing without forking `git commit` omitted to call the post-commit hook after creating the commit. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--sequencer.c1
-rwxr-xr-xt/t3404-rebase-interactive.sh19
2 files changed, 20 insertions, 0 deletions
diff --git a/sequencer.c b/sequencer.c
index cdc0d1d..da2decb 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -1401,6 +1401,7 @@ static int try_to_commit(struct repository *r,
goto out;
}
+ run_commit_hook(0, r->index_file, "post-commit", NULL);
if (flags & AMEND_MSG)
commit_post_rewrite(r, current_head, oid);
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index c5d0326..c573c99 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -1583,6 +1583,25 @@ test_expect_success 'valid author header when author contains single quote' '
test_cmp expected actual
'
+test_expect_success 'post-commit hook is called' '
+ test_when_finished "rm -f .git/hooks/post-commit" &&
+ >actual &&
+ mkdir -p .git/hooks &&
+ write_script .git/hooks/post-commit <<-\EOS &&
+ git rev-parse HEAD >>actual
+ EOS
+ (
+ set_fake_editor &&
+ FAKE_LINES="edit 4 1 reword 2 fixup 3" git rebase -i A E &&
+ echo x>file3 &&
+ git add file3 &&
+ FAKE_COMMIT_MESSAGE=edited git rebase --continue
+ ) &&
+ git rev-parse HEAD@{5} HEAD@{4} HEAD@{3} HEAD@{2} HEAD@{1} HEAD \
+ >expect &&
+ test_cmp expect actual
+'
+
# This must be the last test in this file
test_expect_success '$EDITOR and friends are unchanged' '
test_editor_unchanged