@@ -242,6 +242,9 @@ save and restore any form of metadata associated with the working tree
(e.g.: permissions/ownership, ACLS, etc). See contrib/hooks/setgitperms.perl
for an example of how to do this.
+Hooks executed during 'post-merge' will run in parallel, unless hook.jobs is
+configured to 1.
+
pre-push
~~~~~~~~
@@ -448,6 +448,7 @@ static void finish(struct commit *head_commit,
const struct object_id *new_head, const char *msg)
{
struct strbuf reflog_message = STRBUF_INIT;
+ struct run_hooks_opt opt;
const struct object_id *head = &head_commit->object.oid;
if (!msg)
@@ -489,7 +490,10 @@ static void finish(struct commit *head_commit,
}
/* Run a post-merge hook */
- run_hook_le(NULL, "post-merge", squash ? "1" : "0", NULL);
+ run_hooks_opt_init_async(&opt);
+ strvec_push(&opt.args, squash ? "1" : "0");
+ run_hooks("post-merge", &opt);
+ run_hooks_opt_clear(&opt);
apply_autostash(git_path_merge_autostash(the_repository));
strbuf_release(&reflog_message);
Teach post-merge to use the hook.h library instead of the run-command.h library to run hooks. This means that post-merge hooks can come from the config as well as from the hookdir. post-merge is invoked only from builtin/merge.c. Signed-off-by: Emily Shaffer <emilyshaffer@google.com> --- Documentation/githooks.txt | 3 +++ builtin/merge.c | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-)