Subject: Re: [PATCH v3 07/13] git hook run: add an --ignore-missing flag

From: Junio C Hamano <[email-masked]>
Date: Thu, 28 Oct 2021 22:59:17 -0700

Ævar Arnfjörð Bjarmason  <[email-masked]> writes:

> +	int ignore_missing = 0;
>  	const char *hook_name;
>  	const char *hook_path;
>  	struct option run_options[] = {
> +		OPT_BOOL(0, "ignore-missing", &ignore_missing,
> +			 N_("silently ignore missing requested <hook-name>")),
>  		OPT_END(),
>  	};
>  	int ret;
> @@ -53,6 +56,8 @@ static int run(int argc, const char **argv, const char *prefix)
>  	git_config(git_default_config, NULL);
>  
>  	hook_name = argv[0];
> +	if (ignore_missing)
> +		return run_hooks_oneshot(hook_name, &opt);
>  	hook_path = find_hook(hook_name);
>  	if (!hook_path) {
>  		error("cannot find a hook named %s", hook_name);

Given that the rest of this "run()" function is more or less
identical to run_hooks_oneshot(), I have to wonder why we do not
give an .ignore_missing member to the hooks_opt structure to be done
with this.  Otehrwise, every time the underlying run_hooks()
interface needs to change, we need to update two places, no?