Hi Sam On 16/10/2024 07:26, Sam Newbold wrote:
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'm pretty sure I've used "git -c core.hookspath=/dev/null ..." in the past when I've wanted to temporarily disable my hooks path, I can't find anything in the documentation though. If
git config core.hookspath /dev/null does work for you it would be really helpful to update the documentation. Best Wishes Phillip
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