I wrote a recent blog post about hacking together a crude version of Git hooks in the Jujutsu VCS. While this is a helpful last resort to avoid pushing unlinted, unformatted code to a remote, Jujutsu has a much more elegant built-in tool to solve the problem of messy local commits: jj fix. Once it’s configured, the fix command runs your formatter/linter over all of your writable1 commits, applying fixes retroactively and automatically rebasing without introducing merge conflicts.