Since v6:
- Converted 'enum hookdir_opt' to UPPER_SNAKE
- Coccinelle fix in the hook destructor
- Fixed a bug where builtin/hook.c wasn't running the default git config setup
and therefore missed hooks in core.hooksPath when it was set. (These hooks
would still run except when invoked by 'git hook run' as the config was
called by the processes which invoked the hook library.)
CI run: https://github.com/nasamuffin/git/actions/runs/436864964
Thanks!
- Emily
Emily Shaffer (17):
doc: propose hooks managed by the config
hook: scaffolding for git-hook subcommand
hook: add list command
hook: include hookdir hook in list
hook: respect hook.runHookDir
hook: implement hookcmd.<name>.skip
parse-options: parse into strvec
hook: add 'run' subcommand
hook: replace find_hook() with hook_exists()
hook: support passing stdin to hooks
run-command: allow stdin for run_processes_parallel
hook: allow parallel hook execution
hook: allow specifying working directory for hooks
run-command: add stdin callback for parallelization
hook: provide stdin by string_list or callback
run-command: allow capturing of collated output
hooks: allow callers to capture output
.gitignore | 1 +
Documentation/Makefile | 1 +
Documentation/config/hook.txt | 19 +
Documentation/git-hook.txt | 117 +++++
Documentation/technical/api-parse-options.txt | 5 +
.../technical/config-based-hooks.txt | 355 +++++++++++++++
Makefile | 2 +
builtin.h | 1 +
builtin/bugreport.c | 4 +-
builtin/fetch.c | 1 +
builtin/hook.c | 176 ++++++++
builtin/submodule--helper.c | 2 +-
command-list.txt | 1 +
git.c | 1 +
hook.c | 416 ++++++++++++++++++
hook.h | 154 +++++++
parse-options-cb.c | 16 +
parse-options.h | 4 +
run-command.c | 85 +++-
run-command.h | 31 ++
submodule.c | 1 +
t/helper/test-run-command.c | 46 +-
t/t0061-run-command.sh | 37 ++
t/t1360-config-based-hooks.sh | 256 +++++++++++
24 files changed, 1717 insertions(+), 15 deletions(-)
create mode 100644 Documentation/config/hook.txt
create mode 100644 Documentation/git-hook.txt
create mode 100644 Documentation/technical/config-based-hooks.txt
create mode 100644 builtin/hook.c
create mode 100644 hook.c
create mode 100644 hook.h
create mode 100755 t/t1360-config-based-hooks.sh