On Thu, May 26 2022, Junio C Hamano wrote: > Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > >> The current proposal is large by line count, but it's relatively easy to >> skim it and assure oneself that a new parameter is being passed in, and >> that all the proposed behavior change applies only to the one caller >> that passes in that new parameter. >> >> Whereas switching to a new non-callback based API will require carefully >> going over the parallel API line-by-line, assuring oneself that the >> non-callback version is really doing the same thing etc. > > I was worried about something like that when I wrote (admittedly > unfairly, in a somewhat frustrated state) that the series was > designed to be hard to revert. The reverting itself was reasonably > easy if the "did we invoke the hook, really?" topic is discarded at > the same time, but if was done with too much rearchitecting, it is > understandable to become cumbersome to review X-<. > > I wonder if rebuilding from scratch is easier to review, then? The > first three patches of such a series would be > > - Revert cb3b3974 (Merge branch 'ab/racy-hooks', 2022-03-30) > - Revert 7431379a (Merge branch 'ab/racy-hooks', 2022-03-16) > - Revert c70bc338 (Merge branch 'ab/config-based-hooks-2', 2022-02-09) > > and then the rest would rebuild what used to be in the original > series on top. There will be a lot of duplicate patches between > that "the rest" and the patches in the original series (e.g. I would > imagine that the resulting hook.h would look more or less > identical), but "git range-diff" may be able to trim it down by > comparing between "the rest" and "c70bc338^..c70bc338^2" (aka > ab/config-based-hooks-2). I dunno. I'm still happy to and planning to send a re-roll of this to try to address outstanding comments/concerns, but am holding off for now because it's not clear to me if you're already planning to discard any such re-roll in favor of a revert. Or do you mean to create a point release with such revert(s) and have master free to move forward with a fix for the outstanding issue, but not to use that for a point release?