From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Emily Shaffer" <emilyshaffer@google.com>,
"Jeff King" <peff@peff.net>, "Taylor Blau" <me@ttaylorr.com>,
"Felipe Contreras" <felipe.contreras@gmail.com>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"brian m . carlson" <sandals@crustytoothpaste.net>,
"Josh Steadmon" <steadmon@google.com>,
"Jonathan Tan" <jonathantanmy@google.com>,
"Derrick Stolee" <stolee@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH 00/27] Base for "config-based-hooks"
Date: Thu, 17 Jun 2021 12:22:34 +0200 [thread overview]
Message-ID: <cover-00.27-0000000000-20210617T101216Z-avarab@gmail.com> (raw)
In-Reply-To: <cover-00.30-00000000000-20210614T101920Z-avarab@gmail.com>
This v3 of the "Base for 'config-based-hooks'" topic is >95% a
slimmed-down versio nof Emily Schaffer's work to introduce a mechanism
to drive hooks via config.
This topic doesn't do that, but moves all hook execution (C libary and
Perl|Python script) to either the new hook.[ch] library code, or the
"git hook run" utility.
See previous iterations for more details:
v0 (Emily's): http://lore.kernel.org/git/20210527000856.695702-1-emilyshaffer@google.com
v1: https://lore.kernel.org/git/cover-00.31-00000000000-20210528T110515Z-avarab@gmail.com/
v2: http://lore.kernel.org/git/cover-00.30-00000000000-20210614T101920Z-avarab@gmail.com
This series gained two new dependencies since v2, my just-submitted
preparatory topics:
https://lore.kernel.org/git/cover-0.3-0000000000-20210617T095827Z-avarab@gmail.com/
https://lore.kernel.org/git/cover-0.3-0000000000-20210617T100239Z-avarab@gmail.com/
And hopefully addreses all the feedback on v2, mainly/entirely from
Emily at https://lore.kernel.org/git/YMfLO9CT+iIDR3OA@google.com
I'd normally have waited longer for a v3, but as discussed in the
small hook.[ch] topic that precedes this one building the new
hook-list.h had an error on Windows CI due to a missing CMake change,
that's now fixed.
Other changes can be seen in the range-diff, all rather trivial fixes
like comment fixes, trimming off "argc/argv" before we pass things to
"git hook run", removing a redundant test setup etc.
I also added a GIT_TEST_FAKE_HOOKS=true for use in the test suite to
make us support a "test-hook" and a "does-not-exist" hook, we'd
previously accept those outside the test environment.
Emily Shaffer (25):
hook: add 'run' subcommand
gc: use hook library for pre-auto-gc hook
rebase: teach pre-rebase to use hook.h
am: convert applypatch hooks to use config
hooks: convert 'post-checkout' hook to hook library
merge: use config-based hooks for post-merge hook
send-email: use 'git hook run' for 'sendemail-validate'
git-p4: use 'git hook' to run hooks
commit: use hook.h to execute hooks
read-cache: convert post-index-change hook to use config
receive-pack: convert push-to-checkout hook to hook.h
run-command: remove old run_hook_{le,ve}() hook API
run-command: allow stdin for run_processes_parallel
hook: support passing stdin to hooks
am: convert 'post-rewrite' hook to hook.h
run-command: add stdin callback for parallelization
hook: provide stdin by string_list or callback
hook: convert 'post-rewrite' hook in sequencer.c to hook.h
transport: convert pre-push hook to use config
reference-transaction: use hook.h to run hooks
run-command: allow capturing of collated output
hooks: allow callers to capture output
receive-pack: convert 'update' hook to hook.h
post-update: use hook.h library
receive-pack: convert receive hooks to hook.h
Ævar Arnfjörð Bjarmason (2):
git hook run: add an --ignore-missing flag
hooks: fix a TOCTOU in "did we run a hook?" heuristic
.gitignore | 1 +
Documentation/git-hook.txt | 51 ++++++
Documentation/githooks.txt | 4 +
Makefile | 1 +
builtin.h | 1 +
builtin/am.c | 33 ++--
builtin/checkout.c | 17 +-
builtin/clone.c | 7 +-
builtin/commit.c | 18 ++-
builtin/fetch.c | 1 +
builtin/gc.c | 8 +-
builtin/hook.c | 90 +++++++++++
builtin/merge.c | 21 ++-
builtin/rebase.c | 9 +-
builtin/receive-pack.c | 298 ++++++++++++++++++------------------
builtin/submodule--helper.c | 2 +-
builtin/worktree.c | 30 ++--
command-list.txt | 1 +
commit.c | 17 +-
commit.h | 3 +-
git-p4.py | 72 +--------
git-send-email.perl | 20 ++-
git.c | 1 +
hook.c | 170 ++++++++++++++++++++
hook.h | 109 +++++++++++++
read-cache.c | 12 +-
refs.c | 42 ++---
reset.c | 15 +-
run-command.c | 122 ++++++++++-----
run-command.h | 48 ++++--
sequencer.c | 87 +++++------
submodule.c | 1 +
t/helper/test-run-command.c | 46 +++++-
t/t0061-run-command.sh | 37 +++++
t/t1800-hook.sh | 154 +++++++++++++++++++
t/t9001-send-email.sh | 4 +-
transport.c | 57 ++-----
37 files changed, 1136 insertions(+), 474 deletions(-)
create mode 100644 Documentation/git-hook.txt
create mode 100644 builtin/hook.c
create mode 100755 t/t1800-hook.sh
Range-diff:
1: 447d349c73 ! 1: cf4b06bfdf hook: add 'run' subcommand
@@ Documentation/git-hook.txt (new)
+-----------
+
+run::
-+
-+ Run the `<hook-name>` hook. Any positional arguments to the
-+ hook should be passed after an optional "--" (or
-+ "--end-of-options"). See "OPTIONS" below for the arguments
-+ this accepts.
++ Run the `<hook-name>` hook. See linkgit:githooks[5] for
++ the hook names we support.
+++
++Any positional arguments to the hook should be passed after an
++optional `--` (or `--end-of-options`, see linkgit:gitcli[7]). The
++arguments (if any) differ by hook name, see linkgit:githooks[5] for
++what those are.
+
+SEE ALSO
+--------
@@ Documentation/githooks.txt: and "0" meaning they were not.
Part of the linkgit:git[1] suite
## Makefile ##
-@@ Makefile: LIB_OBJS += hash-lookup.o
- LIB_OBJS += hashmap.o
- LIB_OBJS += help.o
- LIB_OBJS += hex.o
-+LIB_OBJS += hook.o
- LIB_OBJS += ident.o
- LIB_OBJS += json-writer.o
- LIB_OBJS += kwset.o
@@ Makefile: BUILTIN_OBJS += builtin/get-tar-commit-id.o
BUILTIN_OBJS += builtin/grep.o
BUILTIN_OBJS += builtin/hash-object.o
@@ builtin/hook.c (new)
+#include "strvec.h"
+
+static const char * const builtin_hook_usage[] = {
++ N_("git hook <command> [...]"),
++ N_("git hook run <hook-name> [-- <hook-args>]"),
++ NULL
++};
++
++static const char * const builtin_hook_run_usage[] = {
+ N_("git hook run <hook-name> [-- <hook-args>]"),
+ NULL
+};
@@ builtin/hook.c (new)
+ };
+
+ argc = parse_options(argc, argv, prefix, run_options,
-+ builtin_hook_usage, PARSE_OPT_KEEP_UNKNOWN | PARSE_OPT_KEEP_DASHDASH);
++ builtin_hook_run_usage,
++ PARSE_OPT_KEEP_UNKNOWN | PARSE_OPT_KEEP_DASHDASH);
+
-+ if (argc > 2) {
-+ if (strcmp(argv[2], "--") &&
-+ strcmp(argv[2], "--end-of-options"))
++ if (argc > 1) {
++ if (strcmp(argv[1], "--") &&
++ strcmp(argv[1], "--end-of-options"))
+ /* Having a -- for "run" is mandatory */
+ usage_with_options(builtin_hook_usage, run_options);
+ /* Add our arguments, start after -- */
-+ for (i = 3 ; i < argc; i++)
++ for (i = 2 ; i < argc; i++)
+ strvec_push(&opt.args, argv[i]);
+ }
+
+ /* Need to take into account core.hooksPath */
+ git_config(git_default_config, NULL);
+
-+ hook_name = argv[1];
++ /*
++ * We are not using run_hooks() because we'd like to detect
++ * missing hooks. Let's find it ourselves and call
++ * run_found_hooks() instead.
++ */
++ hook_name = argv[0];
+ hook_path = find_hook(hook_name);
+ if (!hook_path) {
+ error("cannot find a hook named %s", hook_name);
@@ builtin/hook.c (new)
+ struct option builtin_hook_options[] = {
+ OPT_END(),
+ };
++ argc = parse_options(argc, argv, NULL, builtin_hook_options,
++ builtin_hook_usage, PARSE_OPT_STOP_AT_NON_OPTION);
++ if (!argc)
++ usage_with_options(builtin_hook_usage, builtin_hook_options);
+
-+ if (!strcmp(argv[1], "run"))
++ if (!strcmp(argv[0], "run"))
+ return run(argc, argv, prefix);
-+ usage_with_options(builtin_hook_usage, builtin_hook_options);
-+ return 1;
++ else
++ usage_with_options(builtin_hook_usage, builtin_hook_options);
+}
## command-list.txt ##
@@ git.c: static struct cmd_struct commands[] = {
{ "init", cmd_init_db },
{ "init-db", cmd_init_db },
- ## hook.c (new) ##
+ ## hook.c ##
@@
-+#include "cache.h"
-+#include "hook.h"
-+#include "run-command.h"
+ #include "hook.h"
+ #include "run-command.h"
+ #include "hook-list.h"
++#include "config.h"
+
+ static int known_hook(const char *name)
+ {
+ const char **p;
+ size_t len = strlen(name);
++ static int test_hooks_ok = -1;
++
+ for (p = hook_name_list; *p; p++) {
+ const char *hook = *p;
+
+@@ hook.c: static int known_hook(const char *name)
+ return 1;
+ }
+
++ if (test_hooks_ok == -1)
++ test_hooks_ok = git_env_bool("GIT_TEST_FAKE_HOOKS", 0);
++
++ if (test_hooks_ok &&
++ (!strcmp(name, "test-hook") ||
++ !strcmp(name, "does-not-exist")))
++ return 1;
++
+ return 0;
+ }
+
+@@ hook.c: int hook_exists(const char *name)
+ {
+ return !!find_hook(name);
+ }
+
+void run_hooks_opt_clear(struct run_hooks_opt *o)
+{
@@ hook.c (new)
+ struct hook_cb_data *hook_cb = pp_cb;
+ struct hook *run_me = hook_cb->run_me;
+
-+ if (!run_me)
-+ BUG("did we not return 1 in notify_hook_finished?");
-+
+ cp->no_stdin = 1;
+ cp->env = hook_cb->options->env.v;
+ cp->stdout_to_stderr = 1;
@@ hook.c (new)
+ struct hook_cb_data *hook_cb = pp_cb;
+ struct hook *attempted = pp_task_cp;
+
-+ /* |= rc in cb */
+ hook_cb->rc |= 1;
+
+ strbuf_addf(out, _("Couldn't start hook '%s'\n"),
@@ hook.c (new)
+{
+ struct hook_cb_data *hook_cb = pp_cb;
+
-+ /* |= rc in cb */
+ hook_cb->rc |= result;
+
+ return 1;
+}
+
-+
+int run_found_hooks(const char *hook_name, const char *hook_path,
+ struct run_hooks_opt *options)
+{
@@ hook.c (new)
+
+ hook_path = find_hook(hook_name);
+
-+ /* Care about nonexistence? Use run_found_hooks() */
++ /*
++ * If you need to act on a missing hook, use run_found_hooks()
++ * instead
++ */
+ if (!hook_path)
+ return 0;
+
@@ hook.c (new)
+ return ret;
+}
- ## hook.h (new) ##
+ ## hook.h ##
@@
-+#ifndef HOOK_H
-+#define HOOK_H
+ #ifndef HOOK_H
+ #define HOOK_H
+#include "strbuf.h"
+#include "strvec.h"
+#include "run-command.h"
-+
+
+ /*
+ * Returns the path to the hook file, or NULL if the hook is missing
+@@ hook.h: const char *find_hook(const char *name);
+ */
+ int hook_exists(const char *hookname);
+
+struct hook {
+ /* The path to the hook */
+ const char *hook_path;
@@ hook.h (new)
+ /* Args to be passed to each hook */
+ struct strvec args;
+
-+ /* Number of threads to parallelize across */
++ /*
++ * Number of threads to parallelize across, currently a stub,
++ * we use the parallel API for future-proofing, but we always
++ * have one hook of a given name, so this is always an
++ * implicit 1 for now.
++ */
+ int jobs;
+};
+
@@ hook.h (new)
+ .args = STRVEC_INIT, \
+}
+
-+/*
-+ * Callback provided to feed_pipe_fn and consume_sideband_fn.
-+ */
+struct hook_cb_data {
++ /* rc reflects the cumulative failure state */
+ int rc;
+ const char *hook_name;
+ struct hook *run_me;
@@ hook.h (new)
+ */
+int run_found_hooks(const char *hookname, const char *hook_path,
+ struct run_hooks_opt *options);
-+#endif
+ #endif
## t/t1800-hook.sh (new) ##
@@
@@ t/t1800-hook.sh (new)
+
+. ./test-lib.sh
+
-+test_expect_success 'git hook run -- nonexistent hook' '
++test_expect_success 'git hook usage' '
++ test_expect_code 129 git hook &&
++ test_expect_code 129 git hook -h &&
++ test_expect_code 129 git hook run -h
++'
++
++test_expect_success 'setup GIT_TEST_FAKE_HOOKS=true to permit "test-hook" and "does-not-exist" names"' '
++ GIT_TEST_FAKE_HOOKS=true &&
++ export GIT_TEST_FAKE_HOOKS
++'
++
++test_expect_success 'git hook run: nonexistent hook' '
+ cat >stderr.expect <<-\EOF &&
-+ error: cannot find a hook named does-not-exist
++ error: cannot find a hook named test-hook
+ EOF
-+ test_expect_code 1 git hook run does-not-exist 2>stderr.actual &&
++ test_expect_code 1 git hook run test-hook 2>stderr.actual &&
+ test_cmp stderr.expect stderr.actual
+'
+
-+test_expect_success 'git hook run -- basic' '
++test_expect_success 'git hook run: basic' '
+ write_script .git/hooks/test-hook <<-EOF &&
+ echo Test hook
+ EOF
@@ t/t1800-hook.sh (new)
+ test_cmp expect actual
+'
+
-+test_expect_success 'git hook run -- stdout and stderr handling' '
++test_expect_success 'git hook run: stdout and stderr both write to our stderr' '
+ write_script .git/hooks/test-hook <<-EOF &&
+ echo >&1 Will end up on stderr
+ echo >&2 Will end up on stderr
@@ t/t1800-hook.sh (new)
+ test_must_be_empty stdout.actual
+'
+
-+test_expect_success 'git hook run -- exit codes are passed along' '
++test_expect_success 'git hook run: exit codes are passed along' '
+ write_script .git/hooks/test-hook <<-EOF &&
+ exit 1
+ EOF
@@ t/t1800-hook.sh (new)
+
+test_expect_success 'git -c core.hooksPath=<PATH> hook run' '
+ mkdir my-hooks &&
-+ write_script my-hooks/test-hook <<-EOF &&
-+ echo Hook ran >>actual
++ write_script my-hooks/test-hook <<-\EOF &&
++ echo Hook ran $1 >>actual
+ EOF
+
+ cat >expect <<-\EOF &&
+ Test hook
-+ Hook ran
-+ Hook ran
-+ Hook ran
-+ Hook ran
++ Hook ran one
++ Hook ran two
++ Hook ran three
++ Hook ran four
+ EOF
+
+ # Test various ways of specifying the path. See also
+ # t1350-config-hooks-path.sh
+ >actual &&
-+ git hook run test-hook 2>>actual &&
-+ git -c core.hooksPath=my-hooks hook run test-hook 2>>actual &&
-+ git -c core.hooksPath=my-hooks/ hook run test-hook 2>>actual &&
-+ git -c core.hooksPath="$PWD/my-hooks" hook run test-hook 2>>actual &&
-+ git -c core.hooksPath="$PWD/my-hooks/" hook run test-hook 2>>actual &&
++ git hook run test-hook -- ignored 2>>actual &&
++ git -c core.hooksPath=my-hooks hook run test-hook -- one 2>>actual &&
++ git -c core.hooksPath=my-hooks/ hook run test-hook -- two 2>>actual &&
++ git -c core.hooksPath="$PWD/my-hooks" hook run test-hook -- three 2>>actual &&
++ git -c core.hooksPath="$PWD/my-hooks/" hook run test-hook -- four 2>>actual &&
+ test_cmp expect actual
+'
+
-+test_expect_success 'set up a pre-commit hook in core.hooksPath' '
-+ >actual &&
-+ mkdir -p .git/custom-hooks .git/hooks &&
-+ write_script .git/custom-hooks/pre-commit <<-\EOF &&
-+ echo CUSTOM >>actual
-+ EOF
-+ write_script .git/hooks/pre-commit <<-\EOF
-+ echo NORMAL >>actual
-+ EOF
-+'
-+
+test_done
2: 85195a78cf < -: ---------- run-command.h: move find_hook() to hook.h
3: eb5bdd993c < -: ---------- hook.c: add a hook_exists() wrapper and use it in bugreport.c
4: da2763192a = 2: 7209f73f28 gc: use hook library for pre-auto-gc hook
5: 51e6e72f23 = 3: e9a1e7cf61 rebase: teach pre-rebase to use hook.h
6: d2f3b26d46 = 4: 1d08726930 am: convert applypatch hooks to use config
7: d884465aab ! 5: 32eec5dc2f hooks: convert 'post-checkout' hook to hook library
@@ hook.c: int run_found_hooks(const char *hook_name, const char *hook_path,
## hook.h ##
@@ hook.h: struct run_hooks_opt
-
- /* Number of threads to parallelize across */
+ * implicit 1 for now.
+ */
int jobs;
+
+ /* Resolve and run the "absolute_path(hook)" instead of
8: ad6e750784 = 6: e9fa3f6759 merge: use config-based hooks for post-merge hook
9: 8d8b2d2645 ! 7: 12347d901b git hook run: add an --ignore-missing flag
@@ Documentation/git-hook.txt: git-hook - run git hooks
DESCRIPTION
-----------
-@@ Documentation/git-hook.txt: run::
- "--end-of-options"). See "OPTIONS" below for the arguments
- this accepts.
+@@ Documentation/git-hook.txt: optional `--` (or `--end-of-options`, see linkgit:gitcli[7]). The
+ arguments (if any) differ by hook name, see linkgit:githooks[5] for
+ what those are.
+OPTIONS
+-------
@@ builtin/hook.c: static int run(int argc, const char **argv, const char *prefix)
};
@@ builtin/hook.c: static int run(int argc, const char **argv, const char *prefix)
- hook_name = argv[1];
+ /*
+ * We are not using run_hooks() because we'd like to detect
+ * missing hooks. Let's find it ourselves and call
+- * run_found_hooks() instead.
++ * run_found_hooks() instead...
+ */
+ hook_name = argv[0];
hook_path = find_hook(hook_name);
if (!hook_path) {
++ /* ... act like run_hooks() under --ignore-missing */
+ if (ignore_missing)
+ return 0;
error("cannot find a hook named %s", hook_name);
@@ builtin/hook.c: static int run(int argc, const char **argv, const char *prefix)
}
## t/t1800-hook.sh ##
-@@ t/t1800-hook.sh: test_expect_success 'git hook run -- nonexistent hook' '
+@@ t/t1800-hook.sh: test_expect_success 'git hook run: nonexistent hook' '
test_cmp stderr.expect stderr.actual
'
-+test_expect_success 'git hook run -- nonexistent hook with --ignore-missing' '
+-test_expect_success 'git hook run: basic' '
++test_expect_success 'git hook run: nonexistent hook with --ignore-missing' '
+ git hook run --ignore-missing does-not-exist 2>stderr.actual &&
+ test_must_be_empty stderr.actual
+'
+
- test_expect_success 'git hook run -- basic' '
++test_expect_success 'git hook run -- basic' '
write_script .git/hooks/test-hook <<-EOF &&
echo Test hook
+ EOF
10: 1953326d1d = 8: 71d209b407 send-email: use 'git hook run' for 'sendemail-validate'
11: aa970a8175 ! 9: 246a82b55b git-p4: use 'git hook' to run hooks
@@ Commit message
Python, we can directly call 'git hook run'. We emulate the existence
check with the --ignore-missing flag.
+ As this is the last hook execution in git.git to not go through "git
+ hook run" or the hook.[ch] library we can now be absolutely sure that
+ our assertion in hook.c that only hooks known by the generated (from
+ githooks(5)) hook-list.h are permitted.
+
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
12: 7756f10aac = 10: e3f8482d80 commit: use hook.h to execute hooks
13: 0300607a9b = 11: 6ed61071c5 read-cache: convert post-index-change hook to use config
14: ec4ad437f8 = 12: e4ef3f4548 receive-pack: convert push-to-checkout hook to hook.h
15: 477eb2245c = 13: e3dda367ec run-command: remove old run_hook_{le,ve}() hook API
16: 53a3877a47 = 14: 477d75bf57 run-command: allow stdin for run_processes_parallel
17: c4f60db606 ! 15: b7c0ee9719 hook: support passing stdin to hooks
@@ Documentation/git-hook.txt: git-hook - run git hooks
DESCRIPTION
-----------
-@@ Documentation/git-hook.txt: run::
+@@ Documentation/git-hook.txt: what those are.
OPTIONS
-------
@@ Documentation/git-hook.txt: run::
## builtin/hook.c ##
@@
- #include "strvec.h"
static const char * const builtin_hook_usage[] = {
+ N_("git hook <command> [...]"),
- N_("git hook run <hook-name> [-- <hook-args>]"),
++ N_("git hook run [<args>] <hook-name> [-- <hook-args>]"),
+ NULL
+ };
+
+ static const char * const builtin_hook_run_usage[] = {
+ N_("git hook run <hook-name> [-- <hook-args>]"),
+ N_("git hook run [--to-stdin=<path>] <hook-name> [-- <hook-args>]"),
NULL
};
@@ builtin/hook.c: static int run(int argc, const char **argv, const char *prefix)
## hook.c ##
@@ hook.c: static int pick_next_hook(struct child_process *cp,
- if (!run_me)
- BUG("did we not return 1 in notify_hook_finished?");
+ struct hook_cb_data *hook_cb = pp_cb;
+ struct hook *run_me = hook_cb->run_me;
- cp->no_stdin = 1;
++
+ /* reopen the file for stdin; run_command closes it. */
+ if (hook_cb->options->path_to_stdin) {
+ cp->no_stdin = 0;
@@ hook.h: struct run_hooks_opt
#define RUN_HOOKS_OPT_INIT { \
## t/t1800-hook.sh ##
-@@ t/t1800-hook.sh: test_expect_success 'set up a pre-commit hook in core.hooksPath' '
- EOF
+@@ t/t1800-hook.sh: test_expect_success 'git -c core.hooksPath=<PATH> hook run' '
+ test_cmp expect actual
'
+test_expect_success 'stdin to hooks' '
18: febf05ef23 = 16: 4035069a98 am: convert 'post-rewrite' hook to hook.h
19: 7baf2469d5 = 17: c847a19581 run-command: add stdin callback for parallelization
20: 2edf9dea41 ! 18: da46c859c1 hook: provide stdin by string_list or callback
@@ hook.c: static int pick_next_hook(struct child_process *cp,
} else {
cp->no_stdin = 1;
}
-@@ hook.c: static int notify_hook_finished(int result,
- return 1;
- }
-
--
- int run_found_hooks(const char *hook_name, const char *hook_path,
- struct run_hooks_opt *options)
- {
@@ hook.c: int run_found_hooks(const char *hook_name, const char *hook_path,
run_processes_parallel_tr2(options->jobs,
pick_next_hook,
@@ hook.c: int run_hooks(const char *hook_name, struct run_hooks_opt *options)
+
hook_path = find_hook(hook_name);
- /* Care about nonexistence? Use run_found_hooks() */
+ /*
## hook.h ##
-@@
+@@ hook.h: int hook_exists(const char *hookname);
struct hook {
/* The path to the hook */
const char *hook_path;
@@ hook.h: struct run_hooks_opt
+ */
+int pipe_from_string_list(struct strbuf *pipe, void *pp_cb, void *pp_task_cb);
+
- /*
- * Callback provided to feed_pipe_fn and consume_sideband_fn.
- */
+ struct hook_cb_data {
+ /* rc reflects the cumulative failure state */
+ int rc;
21: 303b31ee62 = 19: 7343be28ef hook: convert 'post-rewrite' hook in sequencer.c to hook.h
22: 62eecafb3f = 20: 85bf13a083 transport: convert pre-push hook to use config
23: 6049b1cdc7 = 21: 331014bad1 reference-transaction: use hook.h to run hooks
24: 26ebbe4c54 = 22: f7f56d0a3b run-command: allow capturing of collated output
25: 251085b752 = 23: 7f7fcc0688 hooks: allow callers to capture output
26: e11a8f6007 = 24: e74d49e559 receive-pack: convert 'update' hook to hook.h
27: ecaedd13b8 = 25: 0bdc4878ac post-update: use hook.h library
28: bb9d57f809 = 26: db70b59b3b receive-pack: convert receive hooks to hook.h
29: 793f112f7a ! 27: d86fedf041 hooks: fix a TOCTOU in "did we run a hook?" heuristic
@@ commit.h: int compare_commits_by_commit_date(const void *a_, const void *b_, voi
## hook.c ##
@@ hook.c: static int notify_hook_finished(int result,
- /* |= rc in cb */
+
hook_cb->rc |= result;
+ if (hook_cb->invoked_hook)
@@ hook.h: struct hook_cb_data {
+ int *invoked_hook;
};
- /*
+ void run_hooks_opt_clear(struct run_hooks_opt *o);
## sequencer.c ##
@@ sequencer.c: static int run_prepare_commit_msg_hook(struct repository *r,
30: bc086454d6 < -: ---------- hook-list.h: add a generated list of hooks, like config-list.h
--
2.32.0.576.g59759b6ca7d
next prev parent reply other threads:[~2021-06-17 10:23 UTC|newest]
Thread overview: 479+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-11 2:10 [PATCH v8 00/37] config-based hooks Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 01/37] doc: propose hooks managed by the config Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 02/37] hook: scaffolding for git-hook subcommand Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 03/37] hook: add list command Emily Shaffer
2021-03-12 8:20 ` Ævar Arnfjörð Bjarmason
2021-03-24 17:31 ` Emily Shaffer
2021-03-25 12:36 ` Ævar Arnfjörð Bjarmason
2021-03-11 2:10 ` [PATCH v8 04/37] hook: include hookdir hook in list Emily Shaffer
2021-03-12 8:30 ` Ævar Arnfjörð Bjarmason
2021-03-24 17:56 ` Emily Shaffer
2021-03-24 19:11 ` Junio C Hamano
2021-03-24 19:23 ` Eric Sunshine
2021-03-24 20:07 ` Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 05/37] hook: teach hook.runHookDir Emily Shaffer
2021-03-12 8:33 ` Ævar Arnfjörð Bjarmason
2021-03-24 18:46 ` Emily Shaffer
2021-03-24 22:38 ` Ævar Arnfjörð Bjarmason
2021-03-11 2:10 ` [PATCH v8 06/37] hook: implement hookcmd.<name>.skip Emily Shaffer
2021-03-12 8:49 ` Ævar Arnfjörð Bjarmason
2021-03-11 2:10 ` [PATCH v8 07/37] parse-options: parse into strvec Emily Shaffer
2021-03-12 8:50 ` Ævar Arnfjörð Bjarmason
2021-03-24 20:34 ` Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 08/37] hook: add 'run' subcommand Emily Shaffer
2021-03-12 8:54 ` Ævar Arnfjörð Bjarmason
2021-03-24 21:29 ` Emily Shaffer
2021-03-12 10:22 ` Junio C Hamano
2021-03-11 2:10 ` [PATCH v8 09/37] hook: introduce hook_exists() Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 10/37] hook: support passing stdin to hooks Emily Shaffer
2021-03-12 9:00 ` Ævar Arnfjörð Bjarmason
2021-03-12 10:22 ` Junio C Hamano
2021-03-11 2:10 ` [PATCH v8 11/37] run-command: allow stdin for run_processes_parallel Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 12/37] hook: allow parallel hook execution Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 13/37] hook: allow specifying working directory for hooks Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 14/37] run-command: add stdin callback for parallelization Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 15/37] hook: provide stdin by string_list or callback Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 16/37] run-command: allow capturing of collated output Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 17/37] hooks: allow callers to capture output Emily Shaffer
2021-03-12 9:08 ` Ævar Arnfjörð Bjarmason
2021-03-24 21:54 ` Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 18/37] commit: use config-based hooks Emily Shaffer
2021-03-12 10:22 ` Junio C Hamano
2021-03-11 2:10 ` [PATCH v8 19/37] am: convert applypatch hooks to use config Emily Shaffer
2021-03-12 10:23 ` Junio C Hamano
2021-03-29 23:39 ` Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 20/37] merge: use config-based hooks for post-merge hook Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 21/37] gc: use hook library for pre-auto-gc hook Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 22/37] rebase: teach pre-rebase to use hook.h Emily Shaffer
2021-03-12 10:24 ` Junio C Hamano
2021-03-11 2:10 ` [PATCH v8 23/37] read-cache: convert post-index-change hook to use config Emily Shaffer
2021-03-12 10:22 ` Junio C Hamano
2021-03-29 23:56 ` Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 24/37] receive-pack: convert push-to-checkout hook to hook.h Emily Shaffer
2021-03-12 10:24 ` Junio C Hamano
2021-03-29 23:59 ` Emily Shaffer
2021-03-30 0:10 ` Junio C Hamano
2021-03-11 2:10 ` [PATCH v8 25/37] git-p4: use 'git hook' to run hooks Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 26/37] hooks: convert 'post-checkout' hook to hook library Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 27/37] hook: convert 'post-rewrite' hook to config Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 28/37] transport: convert pre-push hook to use config Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 29/37] reference-transaction: look for hooks in config Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 30/37] receive-pack: convert 'update' hook to hook.h Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 31/37] proc-receive: acquire hook list from hook.h Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 32/37] post-update: use hook.h library Emily Shaffer
2021-03-12 9:14 ` Ævar Arnfjörð Bjarmason
2021-03-30 0:01 ` Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 33/37] receive-pack: convert receive hooks to hook.h Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 34/37] bugreport: use hook_exists instead of find_hook Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 35/37] git-send-email: use 'git hook run' for 'sendemail-validate' Emily Shaffer
2021-03-12 9:21 ` Ævar Arnfjörð Bjarmason
2021-03-30 0:03 ` Emily Shaffer
2021-03-31 21:47 ` Emily Shaffer
2021-03-31 22:06 ` Junio C Hamano
2021-04-01 18:08 ` Emily Shaffer
2021-04-01 18:55 ` Junio C Hamano
2021-04-02 11:34 ` [PATCH 0/2] git-send-email: refactor duplicate $? checks into a function Ævar Arnfjörð Bjarmason
2021-04-02 11:34 ` [PATCH 1/2] git-send-email: replace "map" in void context with "for" Ævar Arnfjörð Bjarmason
2021-04-02 21:31 ` Junio C Hamano
2021-04-02 21:37 ` Emily Shaffer
2021-04-02 11:34 ` [PATCH 2/2] git-send-email: refactor duplicate $? checks into a function Ævar Arnfjörð Bjarmason
2021-04-02 21:36 ` Junio C Hamano
2021-04-04 9:19 ` [PATCH v2 0/4] refactor duplicate $? checks into a function + improve errors Ævar Arnfjörð Bjarmason
2021-04-04 9:19 ` [PATCH v2 1/4] git-send-email: replace "map" in void context with "for" Ævar Arnfjörð Bjarmason
2021-04-04 9:19 ` [PATCH v2 2/4] git-send-email: refactor duplicate $? checks into a function Ævar Arnfjörð Bjarmason
2021-04-05 19:11 ` Junio C Hamano
2021-04-05 23:47 ` Junio C Hamano
2021-04-08 22:43 ` Junio C Hamano
2021-04-08 22:46 ` Junio C Hamano
2021-04-08 23:54 ` Ævar Arnfjörð Bjarmason
2021-04-09 0:08 ` Junio C Hamano
2021-05-03 20:30 ` Emily Shaffer
2021-04-04 9:19 ` [PATCH v2 3/4] git-send-email: test full --validate output Ævar Arnfjörð Bjarmason
2021-04-04 9:19 ` [PATCH v2 4/4] git-send-email: improve --validate error output Ævar Arnfjörð Bjarmason
2021-04-05 19:14 ` Junio C Hamano
2021-04-06 14:00 ` [PATCH v3 0/3] refactor duplicate $? checks into a function + improve errors Ævar Arnfjörð Bjarmason
2021-04-06 14:00 ` [PATCH v3 1/3] git-send-email: test full --validate output Ævar Arnfjörð Bjarmason
2021-04-06 14:00 ` [PATCH v3 2/3] git-send-email: refactor duplicate $? checks into a function Ævar Arnfjörð Bjarmason
2021-04-06 14:00 ` [PATCH v3 3/3] git-send-email: improve --validate error output Ævar Arnfjörð Bjarmason
2021-04-06 20:33 ` [PATCH v3 0/3] refactor duplicate $? checks into a function + improve errors Junio C Hamano
2021-03-12 23:29 ` [PATCH v8 35/37] git-send-email: use 'git hook run' for 'sendemail-validate' Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 36/37] run-command: stop thinking about hooks Emily Shaffer
2021-03-12 9:23 ` Ævar Arnfjörð Bjarmason
2021-03-30 0:07 ` Emily Shaffer
2021-03-11 2:10 ` [PATCH v8 37/37] docs: unify githooks and git-hook manpages Emily Shaffer
2021-03-12 9:29 ` Ævar Arnfjörð Bjarmason
2021-03-30 0:10 ` Emily Shaffer
2021-04-07 2:36 ` Junio C Hamano
2021-04-08 20:20 ` Jeff Hostetler
2021-04-08 21:17 ` Junio C Hamano
2021-04-08 23:46 ` Emily Shaffer
2021-04-09 0:03 ` Junio C Hamano
2021-03-11 22:26 ` [PATCH v8 00/37] config-based hooks Junio C Hamano
2021-03-12 23:27 ` Emily Shaffer
2021-03-12 9:49 ` Ævar Arnfjörð Bjarmason
2021-03-17 18:41 ` Emily Shaffer
2021-03-17 19:16 ` Emily Shaffer
2021-03-12 11:13 ` Ævar Arnfjörð Bjarmason
2021-03-25 12:41 ` Ævar Arnfjörð Bjarmason
2021-05-27 0:08 ` [PATCH v9 00/37] propose " Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 01/37] doc: propose hooks managed by the config Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 02/37] hook: introduce git-hook subcommand Emily Shaffer
2021-05-27 2:18 ` Junio C Hamano
2021-05-27 0:08 ` [PATCH v9 03/37] hook: include hookdir hook in list Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 04/37] hook: teach hook.runHookDir Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 05/37] hook: implement hookcmd.<name>.skip Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 06/37] parse-options: parse into strvec Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 07/37] hook: add 'run' subcommand Emily Shaffer
2021-06-03 9:07 ` Ævar Arnfjörð Bjarmason
2021-06-03 22:29 ` Junio C Hamano
2021-05-27 0:08 ` [PATCH v9 08/37] hook: introduce hook_exists() Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 09/37] hook: support passing stdin to hooks Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 10/37] run-command: allow stdin for run_processes_parallel Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 11/37] hook: allow parallel hook execution Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 12/37] hook: allow specifying working directory for hooks Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 13/37] run-command: add stdin callback for parallelization Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 14/37] hook: provide stdin by string_list or callback Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 15/37] run-command: allow capturing of collated output Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 16/37] hooks: allow callers to capture output Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 17/37] commit: use config-based hooks Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 18/37] am: convert applypatch hooks to use config Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 19/37] merge: use config-based hooks for post-merge hook Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 20/37] gc: use hook library for pre-auto-gc hook Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 21/37] rebase: teach pre-rebase to use hook.h Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 22/37] read-cache: convert post-index-change hook to use config Emily Shaffer
2021-05-27 23:04 ` Ævar Arnfjörð Bjarmason
2021-05-28 1:09 ` Taylor Blau
2021-05-31 19:21 ` Felipe Contreras
2021-05-27 0:08 ` [PATCH v9 23/37] receive-pack: convert push-to-checkout hook to hook.h Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 24/37] git-p4: use 'git hook' to run hooks Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 25/37] hooks: convert 'post-checkout' hook to hook library Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 26/37] hook: convert 'post-rewrite' hook to config Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 27/37] transport: convert pre-push hook to use config Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 28/37] reference-transaction: look for hooks in config Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 29/37] receive-pack: convert 'update' hook to hook.h Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 30/37] proc-receive: acquire hook list from hook.h Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 31/37] post-update: use hook.h library Emily Shaffer
2021-06-14 9:09 ` Ævar Arnfjörð Bjarmason
2021-05-27 0:08 ` [PATCH v9 32/37] receive-pack: convert receive hooks to hook.h Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 33/37] bugreport: use hook_exists instead of find_hook Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 34/37] git-send-email: use 'git hook run' for 'sendemail-validate' Emily Shaffer
2021-05-27 11:56 ` Ævar Arnfjörð Bjarmason
2021-05-27 0:08 ` [PATCH v9 35/37] run-command: stop thinking about hooks Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 36/37] doc: clarify fsmonitor-watchman specification Emily Shaffer
2021-05-27 0:08 ` [PATCH v9 37/37] docs: link githooks and git-hook manpages Emily Shaffer
2021-06-03 9:18 ` Ævar Arnfjörð Bjarmason
2021-05-27 11:49 ` [PATCH v9 00/37] propose config-based hooks Ævar Arnfjörð Bjarmason
2021-05-27 13:36 ` Ævar Arnfjörð Bjarmason
2021-05-27 17:46 ` Felipe Contreras
2021-05-28 12:11 ` [PATCH 00/31] minimal restart of "config-based-hooks" Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 01/31] hooks tests: don't leave "actual" nonexisting on failure Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 02/31] gc tests: add a test for the "pre-auto-gc" hook Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 03/31] hook: add 'run' subcommand Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 04/31] run-command.h: move find_hook() to hook.h Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 05/31] hook.c: add a hook_exists() wrapper and use it in bugreport.c Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 06/31] gc: use hook library for pre-auto-gc hook Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 07/31] rebase: teach pre-rebase to use hook.h Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 08/31] am: convert applypatch hooks to use config Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 09/31] hooks: convert 'post-checkout' hook to hook library Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 10/31] merge: use config-based hooks for post-merge hook Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 11/31] git hook run: add an --ignore-missing flag Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 12/31] send-email: use 'git hook run' for 'sendemail-validate' Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 13/31] git-p4: use 'git hook' to run hooks Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 14/31] commit: use hook.h to execute hooks Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 15/31] read-cache: convert post-index-change hook to use config Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 16/31] receive-pack: convert push-to-checkout hook to hook.h Ævar Arnfjörð Bjarmason
2021-06-02 0:51 ` Felipe Contreras
2021-05-28 12:11 ` [PATCH 17/31] run-command: allow stdin for run_processes_parallel Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 18/31] hook: support passing stdin to hooks Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 19/31] am: convert 'post-rewrite' hook to hook.h Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 20/31] run-command: add stdin callback for parallelization Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 21/31] hook: provide stdin by string_list or callback Ævar Arnfjörð Bjarmason
2021-06-02 1:00 ` Felipe Contreras
2021-05-28 12:11 ` [PATCH 22/31] hook: convert 'post-rewrite' hook in sequencer.c to hook.h Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 23/31] transport: convert pre-push hook to use config Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 24/31] reference-transaction: use hook.h to run hooks Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 25/31] run-command: allow capturing of collated output Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 26/31] hooks: allow callers to capture output Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 27/31] receive-pack: convert 'update' hook to hook.h Ævar Arnfjörð Bjarmason
2021-06-02 1:04 ` Felipe Contreras
2021-05-28 12:11 ` [PATCH 28/31] post-update: use hook.h library Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 29/31] receive-pack: convert receive hooks to hook.h Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 30/31] hooks: fix a TOCTOU in "did we run a hook?" heuristic Ævar Arnfjörð Bjarmason
2021-05-28 12:48 ` Bagas Sanjaya
2021-05-28 14:11 ` Ævar Arnfjörð Bjarmason
2021-05-28 12:11 ` [PATCH 31/31] hook-list.h: add a generated list of hooks, like config-list.h Ævar Arnfjörð Bjarmason
2021-06-01 1:00 ` Ævar Arnfjörð Bjarmason
2021-06-01 18:14 ` [PATCH 00/31] minimal restart of "config-based-hooks" Emily Shaffer
2021-06-01 20:50 ` Derrick Stolee
2021-06-02 5:42 ` Felipe Contreras
2021-06-02 7:46 ` Ævar Arnfjörð Bjarmason
2021-06-02 9:34 ` Ævar Arnfjörð Bjarmason
2021-06-02 5:30 ` Felipe Contreras
2021-06-02 7:56 ` Ævar Arnfjörð Bjarmason
2021-06-02 9:39 ` Ævar Arnfjörð Bjarmason
2021-06-25 18:14 ` Felipe Contreras
2021-06-14 10:32 ` [PATCH v2 00/30] Minimal " Ævar Arnfjörð Bjarmason
2021-06-14 10:32 ` [PATCH v2 01/30] hook: add 'run' subcommand Ævar Arnfjörð Bjarmason
2021-06-14 21:33 ` Emily Shaffer
2021-06-15 9:36 ` Ævar Arnfjörð Bjarmason
2021-06-18 22:13 ` Emily Shaffer
2021-06-20 19:30 ` Ævar Arnfjörð Bjarmason
2021-06-21 3:44 ` Junio C Hamano
2021-06-22 0:00 ` Emily Shaffer
2021-06-29 1:12 ` Junio C Hamano
2021-06-25 19:02 ` Felipe Contreras
2021-06-25 19:08 ` Felipe Contreras
2021-06-14 10:32 ` [PATCH v2 02/30] run-command.h: move find_hook() to hook.h Ævar Arnfjörð Bjarmason
2021-06-14 10:32 ` [PATCH v2 03/30] hook.c: add a hook_exists() wrapper and use it in bugreport.c Ævar Arnfjörð Bjarmason
2021-06-14 10:32 ` [PATCH v2 04/30] gc: use hook library for pre-auto-gc hook Ævar Arnfjörð Bjarmason
2021-06-14 23:57 ` Emily Shaffer
2021-06-14 10:32 ` [PATCH v2 05/30] rebase: teach pre-rebase to use hook.h Ævar Arnfjörð Bjarmason
2021-06-14 10:32 ` [PATCH v2 06/30] am: convert applypatch hooks to use config Ævar Arnfjörð Bjarmason
2021-06-14 10:32 ` [PATCH v2 07/30] hooks: convert 'post-checkout' hook to hook library Ævar Arnfjörð Bjarmason
2021-06-14 10:32 ` [PATCH v2 08/30] merge: use config-based hooks for post-merge hook Ævar Arnfjörð Bjarmason
2021-06-14 10:32 ` [PATCH v2 09/30] git hook run: add an --ignore-missing flag Ævar Arnfjörð Bjarmason
2021-06-14 10:32 ` [PATCH v2 10/30] send-email: use 'git hook run' for 'sendemail-validate' Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 11/30] git-p4: use 'git hook' to run hooks Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 12/30] commit: use hook.h to execute hooks Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 13/30] read-cache: convert post-index-change hook to use config Ævar Arnfjörð Bjarmason
2021-06-25 18:32 ` Felipe Contreras
2021-06-14 10:33 ` [PATCH v2 14/30] receive-pack: convert push-to-checkout hook to hook.h Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 15/30] run-command: remove old run_hook_{le,ve}() hook API Ævar Arnfjörð Bjarmason
2021-06-25 18:34 ` Felipe Contreras
2021-06-14 10:33 ` [PATCH v2 16/30] run-command: allow stdin for run_processes_parallel Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 17/30] hook: support passing stdin to hooks Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 18/30] am: convert 'post-rewrite' hook to hook.h Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 19/30] run-command: add stdin callback for parallelization Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 20/30] hook: provide stdin by string_list or callback Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 21/30] hook: convert 'post-rewrite' hook in sequencer.c to hook.h Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 22/30] transport: convert pre-push hook to use config Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 23/30] reference-transaction: use hook.h to run hooks Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 24/30] run-command: allow capturing of collated output Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 25/30] hooks: allow callers to capture output Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 26/30] receive-pack: convert 'update' hook to hook.h Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 27/30] post-update: use hook.h library Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 28/30] receive-pack: convert receive hooks to hook.h Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 29/30] hooks: fix a TOCTOU in "did we run a hook?" heuristic Ævar Arnfjörð Bjarmason
2021-06-14 10:33 ` [PATCH v2 30/30] hook-list.h: add a generated list of hooks, like config-list.h Ævar Arnfjörð Bjarmason
2021-06-15 10:02 ` Ævar Arnfjörð Bjarmason
2021-06-14 20:22 ` [PATCH v2 00/30] Minimal restart of "config-based-hooks" Emily Shaffer
2021-06-16 0:45 ` Junio C Hamano
2021-06-17 10:22 ` Ævar Arnfjörð Bjarmason [this message]
2021-06-17 10:22 ` [PATCH 01/27] hook: add 'run' subcommand Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 02/27] gc: use hook library for pre-auto-gc hook Ævar Arnfjörð Bjarmason
2021-07-22 21:58 ` Emily Shaffer
2021-06-17 10:22 ` [PATCH 03/27] rebase: teach pre-rebase to use hook.h Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 04/27] am: convert applypatch hooks to use config Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 05/27] hooks: convert 'post-checkout' hook to hook library Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 06/27] merge: use config-based hooks for post-merge hook Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 07/27] git hook run: add an --ignore-missing flag Ævar Arnfjörð Bjarmason
2021-07-02 23:47 ` Emily Shaffer
2021-06-17 10:22 ` [PATCH 08/27] send-email: use 'git hook run' for 'sendemail-validate' Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 09/27] git-p4: use 'git hook' to run hooks Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 10/27] commit: use hook.h to execute hooks Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 11/27] read-cache: convert post-index-change hook to use config Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 12/27] receive-pack: convert push-to-checkout hook to hook.h Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 13/27] run-command: remove old run_hook_{le,ve}() hook API Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 14/27] run-command: allow stdin for run_processes_parallel Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 15/27] hook: support passing stdin to hooks Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 16/27] am: convert 'post-rewrite' hook to hook.h Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 17/27] run-command: add stdin callback for parallelization Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 18/27] hook: provide stdin by string_list or callback Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 19/27] hook: convert 'post-rewrite' hook in sequencer.c to hook.h Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 20/27] transport: convert pre-push hook to use config Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 21/27] reference-transaction: use hook.h to run hooks Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 22/27] run-command: allow capturing of collated output Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 23/27] hooks: allow callers to capture output Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 24/27] receive-pack: convert 'update' hook to hook.h Ævar Arnfjörð Bjarmason
2021-06-17 10:22 ` [PATCH 25/27] post-update: use hook.h library Ævar Arnfjörð Bjarmason
2021-06-17 10:23 ` [PATCH 26/27] receive-pack: convert receive hooks to hook.h Ævar Arnfjörð Bjarmason
2021-06-17 10:23 ` [PATCH 27/27] hooks: fix a TOCTOU in "did we run a hook?" heuristic Ævar Arnfjörð Bjarmason
2021-06-18 22:09 ` Emily Shaffer
2021-07-15 23:25 ` [PATCH 0/9] config-based hooks restarted Emily Shaffer
2021-07-15 23:25 ` [PATCH 1/9] hook: run a list of hooks instead Emily Shaffer
2021-07-15 23:25 ` [PATCH 2/9] hook: allow parallel hook execution Emily Shaffer
2021-07-16 8:36 ` Ævar Arnfjörð Bjarmason
2021-07-22 21:12 ` Emily Shaffer
2021-07-23 9:30 ` Ævar Arnfjörð Bjarmason
2021-07-15 23:25 ` [PATCH 3/9] hook: introduce "git hook list" Emily Shaffer
2021-07-16 8:52 ` Ævar Arnfjörð Bjarmason
2021-07-22 22:18 ` Emily Shaffer
2021-07-23 9:29 ` Ævar Arnfjörð Bjarmason
2021-07-15 23:25 ` [PATCH 4/9] hook: treat hookdir hook specially Emily Shaffer
2021-07-16 8:58 ` Ævar Arnfjörð Bjarmason
2021-07-22 22:24 ` Emily Shaffer
2021-07-23 9:26 ` Ævar Arnfjörð Bjarmason
2021-07-23 17:33 ` Felipe Contreras
2021-07-23 18:22 ` Eric Sunshine
2021-07-23 20:02 ` Felipe Contreras
2021-07-15 23:25 ` [PATCH 5/9] hook: allow running non-native hooks Emily Shaffer
2021-07-15 23:26 ` [PATCH 6/9] hook: include hooks from the config Emily Shaffer
2021-07-16 9:01 ` Ævar Arnfjörð Bjarmason
2021-07-22 22:51 ` Emily Shaffer
2021-07-23 9:22 ` Ævar Arnfjörð Bjarmason
2021-07-15 23:26 ` [PATCH 7/9] hook: allow out-of-repo 'git hook' invocations Emily Shaffer
2021-07-16 8:33 ` Ævar Arnfjörð Bjarmason
2021-07-22 23:07 ` Emily Shaffer
2021-07-23 9:18 ` Ævar Arnfjörð Bjarmason
2021-07-15 23:26 ` [PATCH 8/9] hook: teach 'hookcmd' config to alias hook scripts Emily Shaffer
2021-07-16 9:13 ` Ævar Arnfjörð Bjarmason
2021-07-22 23:31 ` Emily Shaffer
2021-07-23 7:41 ` Ævar Arnfjörð Bjarmason
2021-08-04 20:38 ` Emily Shaffer
2021-08-05 0:17 ` Ævar Arnfjörð Bjarmason
2021-08-05 21:45 ` Emily Shaffer
2021-08-05 22:26 ` Ævar Arnfjörð Bjarmason
2021-08-06 20:18 ` Emily Shaffer
2021-08-04 21:49 ` Jonathan Tan
2021-07-15 23:26 ` [PATCH 9/9] hook: implement hookcmd.<name>.skip Emily Shaffer
2021-07-28 20:39 ` [PATCH 00/27] Base for "config-based-hooks" Emily Shaffer
2021-08-03 19:38 ` [PATCH v4 00/36] Run hooks via "git run hook" & hook library Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 01/36] Makefile: mark "check" target as .PHONY Ævar Arnfjörð Bjarmason
2021-08-20 0:04 ` Emily Shaffer
2021-08-03 19:38 ` [PATCH v4 02/36] Makefile: stop hardcoding {command,config}-list.h Ævar Arnfjörð Bjarmason
2021-08-20 0:03 ` Emily Shaffer
2021-08-24 14:22 ` Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 03/36] Makefile: remove an out-of-date comment Ævar Arnfjörð Bjarmason
2021-08-20 0:05 ` Emily Shaffer
2021-08-03 19:38 ` [PATCH v4 04/36] hook.[ch]: move find_hook() to this new library Ævar Arnfjörð Bjarmason
2021-08-20 0:08 ` Emily Shaffer
2021-08-03 19:38 ` [PATCH v4 05/36] hook.c: add a hook_exists() wrapper and use it in bugreport.c Ævar Arnfjörð Bjarmason
2021-08-20 0:09 ` Emily Shaffer
2021-08-03 19:38 ` [PATCH v4 06/36] hook.c users: use "hook_exists()" insted of "find_hook()" Ævar Arnfjörð Bjarmason
2021-08-20 0:10 ` Emily Shaffer
2021-08-03 19:38 ` [PATCH v4 07/36] hook-list.h: add a generated list of hooks, like config-list.h Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 08/36] hook: add 'run' subcommand Ævar Arnfjörð Bjarmason
2021-08-04 10:15 ` Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 09/36] gc: use hook library for pre-auto-gc hook Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 10/36] rebase: convert pre-rebase to use hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 11/36] am: convert applypatch " Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 12/36] hooks: convert 'post-checkout' hook to hook library Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 13/36] merge: convert post-merge to use hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 14/36] git hook run: add an --ignore-missing flag Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 15/36] send-email: use 'git hook run' for 'sendemail-validate' Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 16/36] git-p4: use 'git hook' to run hooks Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 17/36] commit: convert {pre-commit,prepare-commit-msg} hook to hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 18/36] read-cache: convert post-index-change to use hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 19/36] receive-pack: convert push-to-checkout hook to hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 20/36] run-command: remove old run_hook_{le,ve}() hook API Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 21/36] run-command: allow stdin for run_processes_parallel Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 22/36] hook: support passing stdin to hooks Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 23/36] am: convert 'post-rewrite' hook to hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 24/36] run-command: add stdin callback for parallelization Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 25/36] hook: provide stdin by string_list or callback Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 26/36] hook: convert 'post-rewrite' hook in sequencer.c to hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 27/36] transport: convert pre-push hook " Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 28/36] hook tests: test for exact "pre-push" hook input Ævar Arnfjörð Bjarmason
2021-08-20 0:16 ` Emily Shaffer
2021-08-03 19:38 ` [PATCH v4 29/36] hook tests: use a modern style for "pre-push" tests Ævar Arnfjörð Bjarmason
2021-08-20 0:18 ` Emily Shaffer
2021-08-03 19:38 ` [PATCH v4 30/36] reference-transaction: use hook.h to run hooks Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 31/36] run-command: allow capturing of collated output Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 32/36] hooks: allow callers to capture output Ævar Arnfjörð Bjarmason
2021-08-03 19:38 ` [PATCH v4 33/36] receive-pack: convert 'update' hook to hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:39 ` [PATCH v4 34/36] post-update: use hook.h library Ævar Arnfjörð Bjarmason
2021-08-03 19:39 ` [PATCH v4 35/36] receive-pack: convert receive hooks to hook.h Ævar Arnfjörð Bjarmason
2021-08-03 19:39 ` [PATCH v4 36/36] hooks: fix a TOCTOU in "did we run a hook?" heuristic Ævar Arnfjörð Bjarmason
2021-08-12 0:42 ` [PATCH v2 0/6] config-based hooks restarted Emily Shaffer
2021-08-12 0:42 ` [PATCH v2 1/6] hook: run a list of hooks instead Emily Shaffer
2021-08-12 17:25 ` Junio C Hamano
2021-08-16 23:38 ` Emily Shaffer
2021-08-12 0:42 ` [PATCH v2 2/6] hook: allow parallel hook execution Emily Shaffer
2021-08-12 17:51 ` Junio C Hamano
2021-08-16 23:59 ` Emily Shaffer
2021-08-12 0:42 ` [PATCH v2 3/6] hook: introduce "git hook list" Emily Shaffer
2021-08-12 18:59 ` Junio C Hamano
2021-08-17 0:36 ` Emily Shaffer
2021-08-12 0:42 ` [PATCH v2 4/6] hook: allow running non-native hooks Emily Shaffer
2021-08-12 19:08 ` Junio C Hamano
2021-08-18 20:51 ` Emily Shaffer
2021-08-18 21:14 ` Emily Shaffer
2021-08-18 21:24 ` Junio C Hamano
2021-08-12 0:42 ` [PATCH v2 5/6] hook: include hooks from the config Emily Shaffer
2021-08-12 20:48 ` Junio C Hamano
2021-08-19 0:09 ` Emily Shaffer
2021-08-12 0:42 ` [PATCH v2 6/6] hook: allow out-of-repo 'git hook' invocations Emily Shaffer
2021-08-12 4:47 ` [PATCH v2 0/6] config-based hooks restarted Junio C Hamano
2021-08-12 5:02 ` Junio C Hamano
2021-08-16 22:31 ` Emily Shaffer
2021-08-19 3:34 ` [PATCH v3 " Emily Shaffer
2021-08-19 3:34 ` [PATCH v3 1/6] hook: run a list of hooks instead Emily Shaffer
2021-08-24 14:56 ` Ævar Arnfjörð Bjarmason
2021-08-26 21:16 ` Emily Shaffer
2021-08-27 11:15 ` Ævar Arnfjörð Bjarmason
2021-08-19 3:34 ` [PATCH v3 2/6] hook: allow parallel hook execution Emily Shaffer
2021-08-24 15:01 ` Ævar Arnfjörð Bjarmason
2021-08-24 16:13 ` Eric Sunshine
2021-08-26 22:36 ` Emily Shaffer
2021-08-19 3:34 ` [PATCH v3 3/6] hook: introduce "git hook list" Emily Shaffer
2021-08-24 15:08 ` Ævar Arnfjörð Bjarmason
2021-08-26 21:43 ` Emily Shaffer
2021-08-24 15:53 ` Ævar Arnfjörð Bjarmason
2021-08-26 22:38 ` Emily Shaffer
2021-08-19 3:34 ` [PATCH v3 4/6] hook: allow running non-native hooks Emily Shaffer
2021-08-24 15:55 ` Ævar Arnfjörð Bjarmason
2021-08-26 22:50 ` Emily Shaffer
2021-08-27 0:22 ` Junio C Hamano
2021-08-19 3:34 ` [PATCH v3 5/6] hook: include hooks from the config Emily Shaffer
2021-08-19 22:39 ` Junio C Hamano
2021-08-19 23:43 ` Emily Shaffer
2021-08-19 23:48 ` Junio C Hamano
2021-08-24 19:30 ` Ævar Arnfjörð Bjarmason
2021-08-31 19:05 ` Emily Shaffer
2021-08-19 3:34 ` [PATCH v3 6/6] hook: allow out-of-repo 'git hook' invocations Emily Shaffer
2021-08-24 20:12 ` Ævar Arnfjörð Bjarmason
2021-08-24 20:38 ` Randall S. Becker
2021-08-24 22:45 ` Ævar Arnfjörð Bjarmason
2021-08-31 21:09 ` Emily Shaffer
2021-08-24 20:29 ` [PATCH v3 0/6] config-based hooks restarted Ævar Arnfjörð Bjarmason
2021-09-02 22:01 ` Emily Shaffer
2021-09-09 12:41 ` [PATCH v4 0/5] " Ævar Arnfjörð Bjarmason
2021-09-09 12:41 ` [PATCH v4 1/5] hook: run a list of hooks instead Ævar Arnfjörð Bjarmason
2021-09-09 12:59 ` [PATCH v4] fixup! " Ævar Arnfjörð Bjarmason
2021-09-09 12:42 ` [PATCH v4 2/5] hook: allow parallel hook execution Ævar Arnfjörð Bjarmason
2021-09-09 12:42 ` [PATCH v4 3/5] hook: introduce "git hook list" Ævar Arnfjörð Bjarmason
2021-09-09 12:42 ` [PATCH v4 4/5] hook: include hooks from the config Ævar Arnfjörð Bjarmason
2021-09-09 12:42 ` [PATCH v4 5/5] hook: allow out-of-repo 'git hook' invocations Ævar Arnfjörð Bjarmason
2021-08-19 0:17 ` [PATCH v4 00/36] Run hooks via "git run hook" & hook library Emily Shaffer
2021-08-19 23:40 ` Emily Shaffer
2021-09-02 7:21 ` Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 " Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 01/36] Makefile: mark "check" target as .PHONY Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 02/36] Makefile: stop hardcoding {command,config}-list.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 03/36] Makefile: remove an out-of-date comment Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 04/36] hook.[ch]: move find_hook() from run-command.c to hook.c Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 05/36] hook.c: add a hook_exists() wrapper and use it in bugreport.c Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 06/36] hook.c users: use "hook_exists()" instead of "find_hook()" Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 07/36] hook-list.h: add a generated list of hooks, like config-list.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 08/36] hook: add 'run' subcommand Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 09/36] gc: use hook library for pre-auto-gc hook Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 10/36] rebase: convert pre-rebase to use hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 11/36] am: convert applypatch " Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 12/36] hooks: convert 'post-checkout' hook to hook library Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 13/36] merge: convert post-merge to use hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 14/36] git hook run: add an --ignore-missing flag Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 15/36] send-email: use 'git hook run' for 'sendemail-validate' Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 16/36] git-p4: use 'git hook' to run hooks Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 17/36] commit: convert {pre-commit,prepare-commit-msg} hook to hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 18/36] read-cache: convert post-index-change to use hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 19/36] receive-pack: convert push-to-checkout hook to hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 20/36] run-command: remove old run_hook_{le,ve}() hook API Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 21/36] run-command: allow stdin for run_processes_parallel Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 22/36] hook: support passing stdin to hooks Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 23/36] am: convert 'post-rewrite' hook to hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 24/36] run-command: add stdin callback for parallelization Ævar Arnfjörð Bjarmason
2021-10-06 11:03 ` ab/config-based-hooks-N status (was Re: [PATCH v5 24/36] run-command: add stdin callback for parallelization) Ævar Arnfjörð Bjarmason
2021-10-12 12:59 ` Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 25/36] hook: provide stdin by string_list or callback Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 26/36] hook: convert 'post-rewrite' hook in sequencer.c to hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 27/36] transport: convert pre-push hook " Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 28/36] hook tests: test for exact "pre-push" hook input Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 29/36] hook tests: use a modern style for "pre-push" tests Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 30/36] reference-transaction: use hook.h to run hooks Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 31/36] run-command: allow capturing of collated output Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 32/36] hooks: allow callers to capture output Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 33/36] receive-pack: convert 'update' hook to hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 34/36] post-update: use hook.h library Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 35/36] receive-pack: convert receive hooks to hook.h Ævar Arnfjörð Bjarmason
2021-09-02 13:11 ` [PATCH v5 36/36] hooks: fix a TOCTOU in "did we run a hook?" heuristic Ævar Arnfjörð Bjarmason
2021-06-25 18:22 ` [PATCH v2 00/30] Minimal restart of "config-based-hooks" Felipe Contreras
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=cover-00.27-0000000000-20210617T101216Z-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=emilyshaffer@google.com \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=me@ttaylorr.com \
--cc=peff@peff.net \
--cc=sandals@crustytoothpaste.net \
--cc=steadmon@google.com \
--cc=stolee@gmail.com \
--cc=sunshine@sunshineco.com \
/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).