Re: run pgindent on a regular basis / scripted manner

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Jelte Fennema <postgres(at)jeltef(dot)nl>, "shiy(dot)fnst(at)fujitsu(dot)com" <shiy(dot)fnst(at)fujitsu(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Noah Misch <noah(at)leadboat(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie>, Bruce Momjian <bruce(at)momjian(dot)us>, Magnus Hagander <magnus(at)hagander(dot)net>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>, Jesse Zhang <sbjesse(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: run pgindent on a regular basis / scripted manner
Date: 2023-02-12 14:16:25
Message-ID: 00885533-ff96-2a95-7911-329c873b3029@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On 2023-02-10 Fr 10:21, Andrew Dunstan wrote:
>
>
> On 2023-02-10 Fr 04:25, Jelte Fennema wrote:
>> Ah yes, I had seen that when I read the initial --commit patch but
>> then forgot about it when the flag didn't work at all when I tried it.
>>
>> Attached is a patch that fixes the issue. And also implements the
>> --dirty and --staged flags in pgindent that Robert Haas requested.
>
>
>
> I don't think just adding a diff filter is really a sufficient fix.
> The file might have been deleted since the commit(s) in question.
> Here's a more general fix for missing files.
>

OK, I've pushed this along with a check to make sure we only process
each file once.

I'm not sure how much more I really want to do here. Given the way
pgindent now processes command line arguments, maybe the best thing is
for people to use that. Use of git aliases can help. Something like
these for example

[alias]

    dirty = diff --name-only --diff-filter=ACMU -- .
    staged = diff --name-only --cached --diff-filter=ACMU -- .
    dstaged = diff --name-only --diff-filter=ACMU HEAD -- .

and then you could do

    pgindent `git dirty`

The only danger would be if there were no dirty files. Maybe we need a
switch to inhibit using the current directory if there are no command
line files.

Thoughts?

cheers

andrew

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bharath Rupireddy 2023-02-12 14:29:00 Re: Use pg_pwritev_with_retry() instead of write() in dir_open_for_write() to avoid partial writes?
Previous Message David Rowley 2023-02-12 10:43:38 Re: Making aggregate deserialization (and WAL receive) functions slightly faster