- cross-posted to:
- git@programming.dev
- lobsters@lemmy.bestiver.se
- cross-posted to:
- git@programming.dev
- lobsters@lemmy.bestiver.se
Most or all of these problems, and several more, are solved by using pre-commit. The author vaguely alludes to having had troubles with tools like this, but that has not been my experience.
The problem with somebody bypassing the hooks (intentionally or unintentionally) is solved by running the hooks as part of your CI; if you don’t allow merges that fail these checks, then people can’t skip them. If you also squash merges as a rule, then every commit on your target branch will pass the checks
EDIT: I’ll add that, IMO, hooks should never modify files. They should simply check that your code meets whatever requirements you want your code-base to meet
EDIT: I’ll add that, IMO, hooks should never modify files. They should simply check that your code meets whatever requirements you want your code-base to meet
This, I think, is the way. This is also how I’ve seen it in every actual real project I’ve encountered, and I sort of wish they would make it a little more clear what is the command I can run to make the checks pass by doing an auto-format or whatever, but yes I agree that the author should have spent a little more time on explaining what the actual solution is.

