Re: run pgindent on a regular basis / scripted manner

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Jelte Fennema <postgres@jeltef.nl>, Peter Geoghegan <pg@bowt.ie>, Bruce Momjian <bruce@momjian.us>, Magnus Hagander <magnus@hagander.net>, Alvaro Herrera <alvherre@2ndquadrant.com>, Stephen Frost <sfrost@snowman.net>, Noah Misch <noah@leadboat.com>, Jesse Zhang <sbjesse@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2023-01-23T10:56:20Z
Lists: pgsql-hackers
On 2023-01-22 Su 20:03, Andres Freund wrote:
> Hi,
>
> On 2023-01-22 19:50:10 -0500, Andrew Dunstan wrote:
>> On 2023-01-22 Su 18:14, Tom Lane wrote:
>>> Jelte Fennema <postgres@jeltef.nl> writes:
>>>> Maybe I'm not understanding your issue correctly, but for such
>>>> a case you could push two commits at the same time.
>>> I don't know that much about git commit hooks, but do they really
>>> only check the final state of a series of commits?
>>
>> The pre-commit hook is literally run every time you do `git commit`. But
>> it's only run on your local instance and only if you have enabled it.
>> It's not project-wide.
> There's different hooks. Locally, I think pre-push would be better suited to
> this than pre-commit (I often save WIP work in local branches, it'd be pretty
> annoying if some indentation thing swore at me).


Yes, me too, so I currently have a filter in my hook that ignores local
WIP branches. The problem with pre-push is that by the time you're
pushing you have already committed and you would have to go back and
undo some stuff to fix it. Probably 99 times out of 100 I'd prefer to
commit indented code off the bat rather than make a separate indentation
commit. But this really illustrates my point: how you do it is up to you.


>
> But there's also hooks like pre-receive, that allow doing validation on the
> server side. Which obviously would be project wide...
>

Yes, but I think it's been demonstrated (again) that there's no
consensus in using those for this purpose.


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix comment from commit 22655aa231.

  2. Add a few recent commits to .git-blame-ignore-revs.

  3. Pre-beta2 mechanical code beautification.

  4. Pre-beta mechanical code beautification.

  5. Make agreed-on updates in perltidy options.

  6. Remove obsolete pgindent options --code-base and --build

  7. Integrate pg_bsd_indent into our build/test infrastructure.

  8. Sync pg_bsd_indent's copyright notices with Postgres practice.

  9. Import pg_bsd_indent sources.

  10. pgindent: filter files for the --commit option

  11. pgindent: more ways to find files to indent

  12. Fix pgindent --show-diff option.

  13. Add non-destructive modes to pgindent

  14. Initial pgindent run with pg_bsd_indent version 2.0.