As of rebasing today, these are all the hooks, converted to hook.h. I chose between parallel and serial execution based only on reading the docs - please, please correct me if I'm wrong. Most of these are pretty straightforward but there are a couple outstanding ones on the server side, which I think could use some extra attention. Thanks! - Emily Emily Shaffer (17): commit: use config-based hooks am: convert applypatch hooks to use config merge: use config-based hooks for post-merge hook gc: use hook library for pre-auto-gc hook rebase: teach pre-rebase to use hook.h read-cache: convert post-index-change hook to use config receive-pack: convert push-to-checkout hook to hook.h git-p4: use 'git hook' to run hooks hooks: convert 'post-checkout' hook to hook library hook: convert 'post-rewrite' hook to config transport: convert pre-push hook to use config reference-transaction: look for hooks in config receive-pack: convert 'update' hook to hook.h proc-receive: acquire hook list from hook.h post-update: use hook.h library receive-pack: convert receive hooks to hook.h run-command: stop thinking about hooks Documentation/githooks.txt | 45 +++ builtin/am.c | 30 +- builtin/checkout.c | 16 +- builtin/clone.c | 7 +- builtin/commit.c | 11 +- builtin/gc.c | 4 +- builtin/merge.c | 14 +- builtin/rebase.c | 7 +- builtin/receive-pack.c | 326 ++++++++++-------- builtin/worktree.c | 30 +- commit.c | 20 +- commit.h | 3 +- git-p4.py | 70 +--- hook.c | 39 ++- read-cache.c | 12 +- refs.c | 33 +- reset.c | 15 +- run-command.c | 66 ---- run-command.h | 24 -- sequencer.c | 83 ++--- t/t1416-ref-transaction-hooks.sh | 12 +- t/t5411/test-0015-too-many-hooks-error.sh | 47 +++ ...3-pre-commit-and-pre-merge-commit-hooks.sh | 17 +- transport.c | 55 +-- 24 files changed, 492 insertions(+), 494 deletions(-) create mode 100644 t/t5411/test-0015-too-many-hooks-error.sh -- 2.28.0.rc0.142.g3c755180ce-goog