Great! I'll reply to this thread when I have some code to be reviewed. On Wed, Oct 16, 2024, at 16:33, Taylor Blau wrote: > On Wed, Oct 16, 2024 at 02:42:57PM +0100, Phillip Wood wrote: >> On 16/10/2024 10:03, Phillip Wood wrote: >> > I'm pretty sure I've used "git -c core.hookspath=/dev/null ..." >> >> Looking at the code that will unfortunately disable all hooks including >> the ones in .git/hooks. It would make sense to allow an empty >> core.hooksPath mean "use .git/hooks". If you're interested in working >> on this then I think doing something like > > Thanks for providing a helpful suggestion. > > I agree that the behavior you suggested here when specifying an empty > value for 'core.hooksPath' would be an improvement here as a means to > override system/global-level configuration. > >> diff --git a/config.c b/config.c >> index a11bb85da30..91f190a1ce1 100644 >> --- a/config.c >> +++ b/config.c >> @@ -1437,7 +1437,10 @@ static int git_default_core_config(const char *var, const char *value, >> if (!strcmp(var, "core.hookspath")) { >> FREE_AND_NULL(git_hooks_path); >> - return git_config_pathname(&git_hooks_path, var, value); >> + if (value) > > I think this should read "if (value && *value)" instead, to ensure that > things like: > > git -c core.hooksPath= ... > > work as expected. > > Thanks, > Taylor