Re: [PATCH v4 8/9] commit: use config-based hooks
- From
Emily Shaffer <emilyshaffer@google.com>
- Date
- Oct 5, 2020, 21:27 UTC
- Message-ID
- <20201005212751.GH331156@google.com>
- In-Reply-To
- <20200923234734.1294057-1-jonathantanmy@google.com>
On Wed, Sep 23, 2020 at 04:47:34PM -0700, Jonathan Tan wrote:
Show 19 quoted lines
>
> > - if (!no_verify && find_hook("pre-commit")) {
> > + if (!no_verify && hook_exists("pre-commit")) {
>
> A reviewer would probably need to look at all instances of "pre-commit"
> (and likewise for the other hooks) but if the plan is to convert all
> hooks, then the reviewer wouldn't need to do this since we could just
> delete the "find_hook" function.
>
> Overall comments about the design and scope of the patch set:
>
> - I think that the abilities of the current patch set regarding
> overriding order of globally-set hook commands is sufficient. We
> should also have some way of disabling globally-set hooks, perhaps
> by implementing the "skip" variable mentioned in patch 1 or by
> allowing the redefinition of hookcmd sections (e.g. by redefining a
> command to "/usr/bin/true"). To me, these provide substantial
> user-facing value, and would be sufficient for a first version - and
> other things like parallelization can come later.OK. I will send 'skip' in the next reroll. Thanks for pointing it out!
Show 14 quoted lines
> > - As for the UI that should be exposed through the "git hook" command, > I think that "git hook list" and "git hook run" are sufficient. > Editing the config files are not too difficult, and "git hook add" > etc. can be added later. > > - As for whether (1) it is OK for none of the hooks to be converted (and > instead rely on the user to edit their hook scripts to call "git hook > run ???"), or if (2) we should require some hooks to be > converted, or if (3) we should require all hooks to be converted: I'd > rather have (2) or (3) so that we don't have dead code. I prefer (3), > especially since a reviewer wouldn't have to worry about leftover > usages of old functions like find_hook() (as I mentioned at the start > of this email), but I'm not fully opposed to (2) either.
I personally prefer (3) - I think the user experience with (2) in a release (or even in 'next', which all Googlers use) is pretty bad. The downside, of course, is that a large topic gets merged all at once and makes some pretty nasty reviewer overhead.
Junio, I wonder if you can give any advice here? What would be really ideal for me would be to do something like Stolee has been doing with his maintenance series - config-based hooks pt. I containing the library code and config-based hooks pt. II containing the conversion of preexisting hooks. Does that make the overhead for you significantly worse?
- Emily