From: Emily Shaffer <emilyshaffer@google.com>
To: git@vger.kernel.org
Cc: Emily Shaffer <emilyshaffer@google.com>
Subject: [PATCH v3 02/17] am: convert applypatch hooks to use config
Date: Mon, 21 Dec 2020 16:04:20 -0800 [thread overview]
Message-ID: <20201222000435.1529768-3-emilyshaffer@google.com> (raw)
In-Reply-To: <20201222000435.1529768-1-emilyshaffer@google.com>
Teach pre-applypatch, post-applypatch, and applypatch-msg to use the
hook.h library instead of the run-command.h library. This enables use of
hooks specified in the config, in addition to those in the hookdir.
These three hooks are called only by builtin/am.c.
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
---
Documentation/githooks.txt | 6 ++++++
builtin/am.c | 12 +++++++++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 8b352be43f..0842cd812c 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -58,6 +58,8 @@ the message file.
The default 'applypatch-msg' hook, when enabled, runs the
'commit-msg' hook, if the latter is enabled.
+Hooks run during 'applypatch-msg' will not be parallelized.
+
pre-applypatch
~~~~~~~~~~~~~~
@@ -73,6 +75,8 @@ make a commit if it does not pass certain test.
The default 'pre-applypatch' hook, when enabled, runs the
'pre-commit' hook, if the latter is enabled.
+Hooks run during 'pre-applypatch' will be run in parallel by default.
+
post-applypatch
~~~~~~~~~~~~~~~
@@ -82,6 +86,8 @@ and is invoked after the patch is applied and a commit is made.
This hook is meant primarily for notification, and cannot affect
the outcome of `git am`.
+Hooks run during 'post-applypatch' will be run in parallel by default.
+
pre-commit
~~~~~~~~~~
diff --git a/builtin/am.c b/builtin/am.c
index f22c73a05b..22d147bc19 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -33,6 +33,7 @@
#include "string-list.h"
#include "packfile.h"
#include "repository.h"
+#include "hook.h"
/**
* Returns the length of the first line of msg.
@@ -426,9 +427,12 @@ static void am_destroy(const struct am_state *state)
static int run_applypatch_msg_hook(struct am_state *state)
{
int ret;
+ struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT_SYNC;
assert(state->msg);
- ret = run_hook_le(NULL, "applypatch-msg", am_path(state, "final-commit"), NULL);
+ strvec_push(&opt.args, am_path(state, "final-commit"));
+ ret = run_hooks("applypatch-msg", &opt);
+ run_hooks_opt_clear(&opt);
if (!ret) {
FREE_AND_NULL(state->msg);
@@ -1558,8 +1562,9 @@ static void do_commit(const struct am_state *state)
struct commit_list *parents = NULL;
const char *reflog_msg, *author, *committer = NULL;
struct strbuf sb = STRBUF_INIT;
+ struct run_hooks_opt hook_opt = RUN_HOOKS_OPT_INIT_ASYNC;
- if (run_hook_le(NULL, "pre-applypatch", NULL))
+ if (run_hooks("pre-applypatch", &hook_opt))
exit(1);
if (write_cache_as_tree(&tree, 0, NULL))
@@ -1611,8 +1616,9 @@ static void do_commit(const struct am_state *state)
fclose(fp);
}
- run_hook_le(NULL, "post-applypatch", NULL);
+ run_hooks("post-applypatch", &hook_opt);
+ run_hooks_opt_clear(&hook_opt);
strbuf_release(&sb);
}
--
2.28.0.rc0.142.g3c755180ce-goog
next prev parent reply other threads:[~2020-12-22 0:06 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-14 23:25 [PATCH] commit: use config-based hooks (config-based hooks part II) Emily Shaffer
2020-10-16 18:34 ` Junio C Hamano
2020-12-05 1:49 ` [PATCH 00/17] use config-based hooks (config-based hooks part Emily Shaffer
2020-12-05 1:49 ` [PATCH 01/17] commit: use config-based hooks Emily Shaffer
2020-12-05 1:49 ` [PATCH 02/17] am: convert applypatch hooks to use config Emily Shaffer
2020-12-05 1:49 ` [PATCH 03/17] merge: use config-based hooks for post-merge hook Emily Shaffer
2020-12-05 1:49 ` [PATCH 04/17] gc: use hook library for pre-auto-gc hook Emily Shaffer
2020-12-05 1:49 ` [PATCH 05/17] rebase: teach pre-rebase to use hook.h Emily Shaffer
2020-12-05 1:49 ` [PATCH 06/17] read-cache: convert post-index-change hook to use config Emily Shaffer
2020-12-05 1:49 ` [PATCH 07/17] receive-pack: convert push-to-checkout hook to hook.h Emily Shaffer
2020-12-05 1:49 ` [PATCH 08/17] git-p4: use 'git hook' to run hooks Emily Shaffer
2020-12-16 0:27 ` Josh Steadmon
2020-12-16 20:19 ` Emily Shaffer
2020-12-05 1:49 ` [PATCH 09/17] hooks: convert 'post-checkout' hook to hook library Emily Shaffer
2020-12-05 1:49 ` [PATCH 10/17] hook: convert 'post-rewrite' hook to config Emily Shaffer
2020-12-08 23:02 ` Josh Steadmon
2020-12-15 23:42 ` Emily Shaffer
2020-12-05 1:49 ` [PATCH 11/17] transport: convert pre-push hook to use config Emily Shaffer
2020-12-05 1:49 ` [PATCH 12/17] reference-transaction: look for hooks in config Emily Shaffer
2020-12-05 1:49 ` [PATCH 13/17] receive-pack: convert 'update' hook to hook.h Emily Shaffer
2020-12-05 1:49 ` [PATCH 14/17] proc-receive: acquire hook list from hook.h Emily Shaffer
2020-12-05 1:49 ` [PATCH 15/17] post-update: use hook.h library Emily Shaffer
2020-12-05 1:49 ` [PATCH 16/17] receive-pack: convert receive hooks to hook.h Emily Shaffer
2020-12-05 1:49 ` [PATCH 17/17] run-command: stop thinking about hooks Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 00/17] use config-based hooks (config-based hooks part II) Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 01/17] commit: use config-based hooks Emily Shaffer
2021-02-01 22:08 ` Junio C Hamano
2021-03-10 19:51 ` Emily Shaffer
2021-03-10 22:36 ` Junio C Hamano
2021-02-01 23:02 ` Junio C Hamano
2021-03-10 19:39 ` Emily Shaffer
2020-12-22 0:04 ` Emily Shaffer [this message]
2021-02-01 22:05 ` [PATCH v3 02/17] am: convert applypatch hooks to use config Junio C Hamano
2020-12-22 0:04 ` [PATCH v3 03/17] merge: use config-based hooks for post-merge hook Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 04/17] gc: use hook library for pre-auto-gc hook Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 05/17] rebase: teach pre-rebase to use hook.h Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 06/17] read-cache: convert post-index-change hook to use config Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 07/17] receive-pack: convert push-to-checkout hook to hook.h Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 08/17] git-p4: use 'git hook' to run hooks Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 09/17] hooks: convert 'post-checkout' hook to hook library Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 10/17] hook: convert 'post-rewrite' hook to config Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 11/17] transport: convert pre-push hook to use config Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 12/17] reference-transaction: look for hooks in config Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 13/17] receive-pack: convert 'update' hook to hook.h Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 14/17] proc-receive: acquire hook list from hook.h Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 15/17] post-update: use hook.h library Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 16/17] receive-pack: convert receive hooks to hook.h Emily Shaffer
2020-12-22 0:04 ` [PATCH v3 17/17] run-command: stop thinking about hooks Emily Shaffer
2020-12-28 19:59 ` [PATCH v3 00/17] use config-based hooks (config-based hooks part II) Emily Shaffer
2020-12-28 22:40 ` [PATCH v3 18/17] doc: make git-hook.txt point of truth Emily Shaffer
2020-12-28 23:15 ` Emily Shaffer
2021-02-18 22:32 ` [PATCH v3 00/17] use config-based hooks (config-based hooks part II) Josh Steadmon
2020-12-16 0:31 ` [PATCH] commit: " Josh Steadmon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201222000435.1529768-3-emilyshaffer@google.com \
--to=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).