aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorEmily Shaffer <emilyshaffer@google.com>2026-02-19 00:23:51 +0200
committerJunio C Hamano <gitster@pobox.com>2026-02-19 13:24:39 -0800
commitb51e238ddf896439d2746b883d892f8f9bba649f (patch)
treedb0e317b5b8adaf1d2d807281784d22c0b07d1f0 /t
parentd084fa2a915784d65257fbaff43f00b3ea5c8a44 (diff)
downloadgit-b51e238ddf896439d2746b883d892f8f9bba649f.tar.xz
hook: allow out-of-repo 'git hook' invocations
Since hooks can now be supplied via the config, and a config can be present without a gitdir via the global and system configs, we can start to allow 'git hook run' to occur without a gitdir. This enables us to do things like run sendemail-validate hooks when running 'git send-email' from a nongit directory. It still doesn't make sense to look for hooks in the hookdir in nongit repos, though, as there is no hookdir. Signed-off-by: Emily Shaffer <emilyshaffer@google.com> Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-xt/t1800-hook.sh16
1 files changed, 11 insertions, 5 deletions
diff --git a/t/t1800-hook.sh b/t/t1800-hook.sh
index fb6bc554b9..e58151e8f8 100755
--- a/t/t1800-hook.sh
+++ b/t/t1800-hook.sh
@@ -131,12 +131,18 @@ test_expect_success 'git hook run -- pass arguments' '
test_cmp expect actual
'
-test_expect_success 'git hook run -- out-of-repo runs excluded' '
- test_hook test-hook <<-EOF &&
- echo Test hook
- EOF
+test_expect_success 'git hook run: out-of-repo runs execute global hooks' '
+ test_config_global hook.global-hook.event test-hook --add &&
+ test_config_global hook.global-hook.command "echo no repo no problems" --add &&
- nongit test_must_fail git hook run test-hook
+ echo "global-hook" >expect &&
+ nongit git hook list test-hook >actual &&
+ test_cmp expect actual &&
+
+ echo "no repo no problems" >expect &&
+
+ nongit git hook run test-hook 2>actual &&
+ test_cmp expect actual
'
test_expect_success 'git -c core.hooksPath=<PATH> hook run' '