On 2023-01-21 Sa 08:26, Andrew Dunstan wrote: > On 2023-01-20 Fr 13:19, Tom Lane wrote: >> Andres Freund <and...@anarazel.de> writes: >>> On 2023-01-20 12:09:05 -0500, Tom Lane wrote: >>>> The core problem here is that requiring that would translate to >>>> requiring every code contributor to have a working copy of pg_bsd_indent. >>> Wouldn't just every committer suffice? >> Not if we have cfbot complaining about it. >> >> (Another problem here is that there's a sizable subset of committers >> who clearly just don't care, and I'm not sure we can convince them to.) > > I think we could do better with some automation tooling for committers > here. One low-risk and simple change would be to provide a > non-destructive mode for pgindent that would show you the changes if any > it would make. That could be worked into a git pre-commit hook that > committers could deploy. I can testify to the usefulness of such hooks - > I have one that while not perfect has saved me on at least two occasions > from forgetting to bump the catalog version. > > I'll take a look at fleshing this out, for my own if no-one else's use. > >
Here's a quick patch for this. I have it in mind to use like this in a pre-commit hook: # only do this on master test `git rev-parse --abbrev-ref HEAD` = "master" || exit 0 src/tools/pgindent/pg_indent --silent `git diff --cached --name-only` || \ { echo "Need a pgindent run" >&2 ; exit 1; } The committer could then run src/tools/pgindent/pg_indent --show-diff `git diff --cached --name-only` to see what changes it thinks are needed. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com