Subject: core.hooksPath cannot revert to the default locally

From: Sam Newbold <[email-masked]>
Date: Wed, 16 Oct 2024 02:26:13 -0400

From my testing, reading the documentation and hunting through the
source code, it appears that if a system administrator sets the
--system core.hooksPath or a script over which you have limited control
sets the --global core.hooksPath, then there is no way for an
individual repository to configure --local core.hooksPath to get the
default behavior. The naive solution of setting core.hooksPath to be
.git/hooks breaks in the case of worktrees.

I would be happy to code a patch for this if I knew how it should be
configured. Obviously, no local setting for a config variable is meant
to inherit the global or system value. We can go all "set of the null
set" by making the empty string mean "revert to default". We could go
fancy "I know what you really mean" by interpreting ".git/hooks" (or
perhaps any path beginning with ".git") not literally in the case of
worktrees, but as relative to GIT_DIR. Or there could be another
setting set on a local repository to ignore global and system values of
core.hooksPath.

Thank you,
Sam Newbold