From: Adrian Ratiu Date: Wed, 25 Mar 2026 11:28:24 GMT Subject: Re: [PATCH v2 09/10] hook: show config scope in git hook list Message-ID: <87v7ekrvvr.fsf@gentoo.mail-host-address-is-not-set> In-Reply-To: On Tue, 24 Mar 2026, Patrick Steinhardt wrote: > On Fri, Mar 20, 2026 at 01:52:10PM +0200, Adrian Ratiu wrote: >> diff --git a/Documentation/git-hook.adoc b/Documentation/git-hook.adoc >> index 966388660a..e7d399ae57 100644 >> --- a/Documentation/git-hook.adoc >> +++ b/Documentation/git-hook.adoc >> @@ -9,7 +9,7 @@ SYNOPSIS >> -------- >> [verse] >> 'git hook' run [--ignore-missing] [--to-stdin=] [-- ] >> -'git hook' list [-z] >> +'git hook' list [-z] [--show-scope] >> >> DESCRIPTION >> ----------- > > Taking a random patch that relates to the git-hook(1) command. I was > wondering whether we want to introduce another change here that will > cause git-hook(1) to bail out when given an unknown hook name. > > I know that we explicitly want to allow having custom hook events, but I > would argue that 99% of all invocations will use any of Git's own hook > events. And given that it's really easy to misspell the "prereceive" > hook (which really is "pre-receive") I think it would be nice if we told > the user that it's an unknown hook instead of silently doing nothing. > > To cover the original use case we could then add something like > "--allow-unknown-hook-name" to make the caller explicitly accept non-Git > hook events. I think this makes sense. I just wrote and tested the implementation and it works nicely. I'll include it in v3. >> diff --git a/t/t1800-hook.sh b/t/t1800-hook.sh >> index 7eee84fc39..22cca15fda 100755 >> --- a/t/t1800-hook.sh >> +++ b/t/t1800-hook.sh >> @@ -408,6 +408,25 @@ test_expect_success 'configured hooks run before hookdir hook' ' >> test_cmp expected actual >> ' >> >> +test_expect_success 'git hook list --show-scope shows config scope' ' >> + test_config_global hook.global-hook.command "echo global" && >> + test_config_global hook.global-hook.event test-hook --add && >> + test_config hook.local-hook.command "echo local" && >> + test_config hook.local-hook.event test-hook --add && >> + >> + cat >expected <<-\EOF && >> + global global-hook >> + local local-hook >> + EOF >> + git hook list --show-scope test-hook >actual && >> + test_cmp expected actual && >> + >> + # without --show-scope the scope must not appear >> + git hook list test-hook >actual && >> + test_grep ! "^global " actual && >> + test_grep ! "^local " actual >> +' > > Do we also want to add a hook discovered via ".git/hooks" to show how it > interacts with the new flag? Yes, good catch, I'll add it in v3.