Re: core.hooksPath cannot revert to the default locally
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Oct 16, 2024, 20:33 UTC
- Message-ID
- <ZxAjLrrqM5i2kdBz@nand.local>
- In-Reply-To
- <932d1aab-26e8-4c27-a3dd-a7191e8e71dd@gmail.com>
On Wed, Oct 16, 2024 at 02:42:57PM +0100, Phillip Wood wrote:
Show 7 quoted lines
> 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.
Show 9 quoted lines
> 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