pre-commit hooks are fundamentally broken

10 months ago by PhilipTheBucket to c/codingcafe

use pre-push hooks instead
fruitcantfly 7 points 10 months ago

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

path: 0 21227172, hotness: undefined, score: 7, children: 1
PhilipTheBucket 5 points 10 months ago

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.

path: 0 21227172 21228168, hotness: undefined, score: 5, children: 0
codingcafe
codingcafe

@programming.dev

login for more options
183
28
1

A community for all programmers

go to feed...