Re: [PATCH 0/4] run auto maintenance in git-gui
- From
- Wolfgang Faust <contrib-git@wolfgangfaust.com>
- Date
- Mar 11, 2026, 04:48 UTC
- Message-ID
- <876fd32d-3965-4587-b567-399787741247@app.fastmail.com>
- In-Reply-To
- <40ccd060-e6f7-4130-a25e-3c2f65df8eb7@kdbg.org>
On Sat, Mar 7, 2026, at 2:37 PM, Johannes Sixt wrote:
Show 15 quoted lines
> Am 07.03.26 um 23:01 schrieb Junio C Hamano: >> Johannes Sixt <j6t@kdbg.org> writes: >>> So, users that are hurt by this new change are those where all these >>> conditions are true: >>> ... >>> How many could this be? Not many, I guess. The conservative safe >>> approach would be to treat gui.gcwarning=false as an indication that >>> automatic cleanup is not desired. > > The option does not only control whether or not a warning appears, but > also whether garbage collection happens or not. When it is set to false, > then in addition to squelching the warning, garbage collection does > *not* happen. The option is on by default, so if we find it off, the > user must have set it explicitly, a clear sign (IMO) that Git GUI should > not do the garbage collection.
I see your point about not garbage-collecting for people who haven't been expecting it, but on the other hand, checking `gui.gcwarning` would not help the people who were achieving the same result by clicking "No" every time.
However, it seems to me that the conditions you outlined are very unlikely. In particular:
> - They configure maintenance.* to do more cleanups than the default > confituration (which is the same as `git gc --auto`, I think). > > - They never use `git maintenance run` through some other facility.
Are these not more or less mutually exclusive? Why would someone set up maintenance to do things, and then never run maintenance?
Given the above, I see two options:
1. Assume that in practice everybody wants auto maintenance and `gui.gcwarning` is set because they were annoyed by the dialog. 2. Assume that some people do *not* want auto maintenance, and if the `gui.gcmaintenance` option is unset then show some kind of dialog that tries to explain the situation to the user and encourages them to set `gui.gcmaintenance=auto`.
#2 is the safer option, but is rather complicated and involves bothering every user for the sake of strict compatibility. I assume that git core itself had to make a similar tradeoff when deciding to enable automatic garbage collection, but I don't know where I'd find that discussion and perhaps it's far enough in the past that the rationales are no longer relevant anyway.