Re: [PATCH 0/4] run auto maintenance in git-gui
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Mar 7, 2026, 11:32 UTC
- Message-ID
- <e17f094f-f869-4cc9-b59c-091b7e61a021@kdbg.org>
- In-Reply-To
- <091e68fa-428d-48b0-bf7d-42b01660d6eb@app.fastmail.com>
Am 06.03.26 um 06:15 schrieb Wolfgang Faust:
Show 8 quoted lines
> Resurrecting the 2019 conversation "git-gui: disable the "loose objects > popup" dialog?": > <https://lore.kernel.org/git/CAGr--=K15nUcnsJWOP87uMMjeQmTgAeO_6hnr12k2zuNQjNyBw@mail.gmail.com/t/#u> > > The consensus there seems to be that git's auto maintenance is now > good enough and if git-gui implemented the same behavior as `git commit` > then the "repository currently has approximately %i loose objects" > dialog would no longer be necessary. This patch series implements that.
Generally, I like the idea.
However, the consequences for users need to be considered. You replace the custom implementation of `git gc` with `git maintenance run --auto`. The latter CAN do a lot more than the former. It turns out, that Git GUI already calls into `git maintance` indirectly via `git merge` and `git fetch`. So, users who set gui.gcwarning to false (myself included) were already prone to occasional inadvertent cleanups.
So, users that are hurt by this new change are those where all these conditions are true:
- They make commits with Git GUI.
- They configure maintenance.* to do more cleanups than the default confituration (which is the same as `git gc --auto`, I think).
- They never use one of `commit`, `am`, `fetch`, `merge`, `rebase` (and possibly more) on the command line.
- They never use `git maintenance run` through some other facility.
- They never use Git GUI's "Local Merge" dialog.
- They never use Git GUI's "Fetch From" command.
- They still expect certain stale data to *not* be pruned.
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.
Show 29 quoted lines
> > Wolfgang Faust (4): > git-gui: run auto maintenance on commit > git-gui: remove hint_gc dialog > git-gui: remove "Compress Database" feature > scalar: remove obsolete gui.GCWarning setting > > Documentation/config/gui.adoc | 5 ----- > Documentation/scalar.adoc | 6 ------ > git-gui/git-gui.sh | 6 ------ > git-gui/lib/commit.tcl | 6 ++++++ > git-gui/lib/database.tcl | 40 ----------------------------------- > git-gui/po/bg.po | 22 ------------------- > git-gui/po/de.po | 27 ----------------------- > git-gui/po/el.po | 27 ----------------------- > git-gui/po/fr.po | 28 ------------------------ > git-gui/po/hu.po | 27 ----------------------- > git-gui/po/it.po | 26 ----------------------- > git-gui/po/ja.po | 26 ----------------------- > git-gui/po/nb.po | 27 ----------------------- > git-gui/po/pt_br.po | 27 ----------------------- > git-gui/po/pt_pt.po | 27 ----------------------- > git-gui/po/ru.po | 20 ------------------ > git-gui/po/sv.po | 27 ----------------------- > git-gui/po/vi.po | 27 ----------------------- > git-gui/po/zh_cn.po | 26 ----------------------- > scalar.c | 1 - > t/t9210-scalar.sh | 20 +++++++++--------- > 21 files changed, 16 insertions(+), 432 deletions(-)
Please separate the patches such that they modify either only files in the git-gui directory or only files outside it. The git-gui/ patches are applied to my repository at https://github.com/j6t/git-gui. Plan the patches such that the remaining patches can be applied later when my repository has been merged into the Git repository.
Please do not modify translation files. It's too much noise. They are only modified when new translations are contributed.
-- Hannes