{"thread":{"id":"51927","subject":"git-gui: disable the \"loose objects popup\" dialog?","startedAt":"2019-09-26T17:32:05Z","lastAt":"2026-03-13T12:39:06Z","messageCount":22,"participants":["Birger Skogeng Pedersen","Johannes Sixt","Pratyush Yadav","Marc Branchaud","Wolfgang Faust","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"382999","messageId":"CAGr--=K15nUcnsJWOP87uMMjeQmTgAeO_6hnr12k2zuNQjNyBw@mail.gmail.com","threadId":"51927","inReplyTo":null,"subject":"git-gui: disable the \"loose objects popup\" dialog?","fromName":"Birger Skogeng Pedersen","fromEmail":"birger.sp@gmail.com","sentAt":"2019-09-26T17:31:46Z","receivedAt":"2019-09-26T17:32:05Z","isPatch":false,"sender":{"key":"birger.sp@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5260237?v=4"},"body":"Hi,\n\n\nEvery once in a while, I get the \"This repository currently has\napproximately (some number) loose objects.\" popup dialog.\n\nI don't want to sound arrogant, but I find this popup along with the\ndialog showing after that prints the result of the compression,\nimmensely annoying. And I've seen people mention before that they\nwould, in some casese, rather not have to deal with the dialog[0].\n\n[0] https://stackoverflow.com/questions/1106529/how-to-skip-loose-object-popup-when-running-git-gui\n\nI get that git-gui merely wants to resolve a performance issue. But\npersonally I'd prefer if git could just assume I always wanted to\ncompress the database, and automatically do it without bugging me with\nthe popups.\n\nI propose we implement the following options in git-gui:\n- ignore loose objects (do not show the popup), disabled by default.\n- automatically, silently compress the database, without prompt. Also\ndisabled by default.\n\n\nThoughts?\n\nBirger\n"},{"id":"383014","messageId":"91e5b3b0-08f9-66a8-ebdf-90effd34c888@kdbg.org","threadId":"51927","inReplyTo":"CAGr--=K15nUcnsJWOP87uMMjeQmTgAeO_6hnr12k2zuNQjNyBw@mail.gmail.com","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2019-09-26T18:54:52Z","receivedAt":"2019-09-26T18:54:57Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 26.09.19 um 19:31 schrieb Birger Skogeng Pedersen:\n> Every once in a while, I get the \"This repository currently has\n> approximately (some number) loose objects.\" popup dialog.\n> \n> I don't want to sound arrogant, but I find this popup along with the\n> dialog showing after that prints the result of the compression,\n> immensely annoying. And I've seen people mention before that they\n> would, in some casese, rather not have to deal with the dialog[0].\n> \n> [0] https://stackoverflow.com/questions/1106529/how-to-skip-loose-object-popup-when-running-git-gui\n> \n> I get that git-gui merely wants to resolve a performance issue. But\n> personally I'd prefer if git could just assume I always wanted to\n> compress the database, and automatically do it without bugging me with\n> the popups.\n\nI dislike the popup, too. But I want total control over my repository:\nNo automatic compression behind my back, in particular, when that\nexpires reflogs, and git-gui does that.\n\n> I propose we implement the following options in git-gui:\n> - ignore loose objects (do not show the popup), disabled by default.\n> - automatically, silently compress the database, without prompt. Also\n> disabled by default.\n\nWhat about a configurable limit, but still show the dialog?\n\n-- Hannes\n"},{"id":"383016","messageId":"CAGr--=+dnNQ-1xOtiQnby6UV8sP9Xapuet3VV7KJxFsZkjXZ+Q@mail.gmail.com","threadId":"51927","inReplyTo":"91e5b3b0-08f9-66a8-ebdf-90effd34c888@kdbg.org","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Birger Skogeng Pedersen","fromEmail":"birger.sp@gmail.com","sentAt":"2019-09-26T19:13:34Z","receivedAt":"2019-09-26T19:13:48Z","isPatch":false,"sender":{"key":"birger.sp@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5260237?v=4"},"body":"Hi Johannes,\n\nOn Thu, Sep 26, 2019 at 8:54 PM Johannes Sixt <j6t@kdbg.org> wrote:\n> I dislike the popup, too. But I want total control over my repository:\n> No automatic compression behind my back, in particular, when that\n> expires reflogs, and git-gui does that.\n\nI understand what you mean. In my opinion, An option to make git-gui\n\"ignore\" loose objects (disable the automatic check) does not\nchallenge total control over the repository.\n\n> What about a configurable limit, but still show the dialog?\n\nSorry, I don't follow. A limit to what?\n\nI'm struggling to see the reasoning for the loose objects check (and\npopup) to happen in git-gui the first place. Why does git-gui take it\nupon itself to automatically perform this check? Is loose objects a\n\"gui\" issue?\n\nBirger\n"},{"id":"383017","messageId":"20190926191545.ro7w6lbtlpbyxpk7@yadavpratyush.com","threadId":"51927","inReplyTo":"91e5b3b0-08f9-66a8-ebdf-90effd34c888@kdbg.org","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Pratyush Yadav","fromEmail":"me@yadavpratyush.com","sentAt":"2019-09-26T19:15:45Z","receivedAt":"2019-09-26T19:15:51Z","isPatch":false,"sender":{"key":"me@yadavpratyush.com","avatar":"https://avatars.githubusercontent.com/u/8817931?v=4"},"body":"On 26/09/19 08:54PM, Johannes Sixt wrote:\n> Am 26.09.19 um 19:31 schrieb Birger Skogeng Pedersen:\n> > Every once in a while, I get the \"This repository currently has\n> > approximately (some number) loose objects.\" popup dialog.\n> > \n> > I don't want to sound arrogant, but I find this popup along with the\n> > dialog showing after that prints the result of the compression,\n> > immensely annoying. And I've seen people mention before that they\n> > would, in some casese, rather not have to deal with the dialog[0].\n> > \n> > [0] https://stackoverflow.com/questions/1106529/how-to-skip-loose-object-popup-when-running-git-gui\n> > \n> > I get that git-gui merely wants to resolve a performance issue. But\n> > personally I'd prefer if git could just assume I always wanted to\n> > compress the database, and automatically do it without bugging me with\n> > the popups.\n> \n> I dislike the popup, too. But I want total control over my repository:\n> No automatic compression behind my back, in particular, when that\n> expires reflogs, and git-gui does that.\n\nI agree. Doing stuff like this in background by default is not the best \nidea IMHO. If the user asks explicitly, fine, but don't do it by \ndefault.\n \n> > I propose we implement the following options in git-gui:\n> > - ignore loose objects (do not show the popup), disabled by default.\n\nReading the Stackoverflow link, it seems this is already possible via an \nundocumented config variable \"gui.gcwarning\". I haven't tried using it \nthough, but I see no reason for it to not work (looking at \ngit-gui.sh:4141).\n\nMaybe we should add this variable in the options dialog, so people at \nleast know it exists?\n\n> > - automatically, silently compress the database, without prompt. Also\n> > disabled by default.\n> \n> What about a configurable limit, but still show the dialog?\n\nDo people really care that much about configuring this limit to warrant \nsomething like this? \n\n\nTalking about auto compression, would it be a better idea to let users \ndisable the dialog, and then if they do want auto compression, they can \njust run a cron job (or the Windows equivalent) to do this on their \nrepos? What reasons do people have to have this feature in git-gui, \ninstead of running cron jobs?\n\n-- \nRegards,\nPratyush Yadav\n"},{"id":"383030","messageId":"CAGr--=KAv8PQMOUbAh=aAWQeMuvHHacXF=+Mc2-NougLYgr2_A@mail.gmail.com","threadId":"51927","inReplyTo":"20190926191545.ro7w6lbtlpbyxpk7@yadavpratyush.com","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Birger Skogeng Pedersen","fromEmail":"birger.sp@gmail.com","sentAt":"2019-09-26T21:12:39Z","receivedAt":"2019-09-26T21:12:53Z","isPatch":false,"sender":{"key":"birger.sp@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5260237?v=4"},"body":"On Thu, Sep 26, 2019 at 9:15 PM Pratyush Yadav <me@yadavpratyush.com> wrote:\n> Talking about auto compression, would it be a better idea to let users\n> disable the dialog, and then if they do want auto compression, they can\n> just run a cron job (or the Windows equivalent) to do this on their\n> repos?\n\nPersonally I would prefer that git-gui (silently) performs the check\nand compression for me when I open it on a repo. But I can totally see\nwhy some (propbably most) git users would not want that. So I don't\nreally mind if that part of my proposal gets denied.\n\n> What reasons do people have to have this feature in git-gui,\n> instead of running cron jobs?\n\nI can't really think of a reason. But then again I can't really think\nof a reason why users would want the \"loose objects check\" in git-gui\nin the first place. Especially not enabled by default, popping up when\nthe user opens git-gui. A button (manual action) to perform this check\nand (if necessary) perform the compression would be better IMO.\n\nBirger\n"},{"id":"383031","messageId":"9d77189d-a357-ab0a-6cb5-e87ecdeffb91@kdbg.org","threadId":"51927","inReplyTo":"20190926191545.ro7w6lbtlpbyxpk7@yadavpratyush.com","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2019-09-26T21:13:30Z","receivedAt":"2019-09-26T21:13:34Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 26.09.19 um 21:15 schrieb Pratyush Yadav:\n> Reading the Stackoverflow link, it seems this is already possible via an \n> undocumented config variable \"gui.gcwarning\". I haven't tried using it \n> though, but I see no reason for it to not work (looking at \n> git-gui.sh:4141).\n\nAh! That explains why I don't see the message on one of my computers,\nbut I do see on others. I must have reset gui.gcwarning there a decade\nago, and forgot about it.\n\n> Maybe we should add this variable in the options dialog, so people at \n> least know it exists?\n\nThat may be the most reasonable thing to do, IMO.\n\n>> What about a configurable limit, but still show the dialog?\n> \n> Do people really care that much about configuring this limit to warrant \n> something like this? \n\nNever mind. We don't need it if there is a simple switch.\n\n> Talking about auto compression, would it be a better idea to let users \n> disable the dialog, and then if they do want auto compression, they can \n> just run a cron job (or the Windows equivalent) to do this on their \n> repos? What reasons do people have to have this feature in git-gui, \n> instead of running cron jobs?\n\nThis is a GUI. It was intended for people with a dislike of the command\nline. If you avoid the command line as much as possible, you never get\nto see any object statistics; yet, all operations would slow down\ngradually due to object bloat with no way out. Remember that this\nfeature was invented long before auto-gc came to existence. Not to\nmention that git-gui uses plumbing mostly where auto-gc would not\ntrigger anyway.\n\n-- Hannes\n"},{"id":"383032","messageId":"497c6951-6eba-9794-2590-2f34388598f4@xiplink.com","threadId":"51927","inReplyTo":"20190926191545.ro7w6lbtlpbyxpk7@yadavpratyush.com","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Marc Branchaud","fromEmail":"marcnarc@xiplink.com","sentAt":"2019-09-26T21:14:23Z","receivedAt":"2019-09-26T21:14:26Z","isPatch":false,"sender":{"key":"marcnarc@xiplink.com","avatar":"https://avatars.githubusercontent.com/u/14980203?v=4"},"body":"On 2019-09-26 3:15 p.m., Pratyush Yadav wrote:\n> On 26/09/19 08:54PM, Johannes Sixt wrote:\n>> Am 26.09.19 um 19:31 schrieb Birger Skogeng Pedersen:\n>>> Every once in a while, I get the \"This repository currently has\n>>> approximately (some number) loose objects.\" popup dialog.\n>>>\n>>> I don't want to sound arrogant, but I find this popup along with the\n>>> dialog showing after that prints the result of the compression,\n>>> immensely annoying. And I've seen people mention before that they\n>>> would, in some casese, rather not have to deal with the dialog[0].\n>>>\n>>> [0] https://stackoverflow.com/questions/1106529/how-to-skip-loose-object-popup-when-running-git-gui\n>>>\n>>> I get that git-gui merely wants to resolve a performance issue. But\n>>> personally I'd prefer if git could just assume I always wanted to\n>>> compress the database, and automatically do it without bugging me with\n>>> the popups.\n>>\n>> I dislike the popup, too. But I want total control over my repository:\n>> No automatic compression behind my back, in particular, when that\n>> expires reflogs, and git-gui does that.\n> \n> I agree. Doing stuff like this in background by default is not the best\n> idea IMHO. If the user asks explicitly, fine, but don't do it by\n> default.\n>   \n>>> I propose we implement the following options in git-gui:\n>>> - ignore loose objects (do not show the popup), disabled by default.\n> \n> Reading the Stackoverflow link, it seems this is already possible via an\n> undocumented config variable \"gui.gcwarning\". I haven't tried using it\n> though, but I see no reason for it to not work (looking at\n> git-gui.sh:4141).\n\nI use this, and it works.  I haven't seen that dialog in years of \nnear-daily repo usage.\n\n> Maybe we should add this variable in the options dialog, so people at\n> least know it exists?\n\nMy experience with qui.gcwarning (i.e. that git-gui hasn't compressed my \nrepo in a very long time) suggests that we can just get rid of this part \nof git-gui.  I seem to recall that this was suggested the last time this \nwas discussed, because the rest of git's auto-gc machinery is now \nworking quite well (compared to when git-gui was first introduced).\n\n\t\tM.\n\n\n>>> - automatically, silently compress the database, without prompt. Also\n>>> disabled by default.\n>>\n>> What about a configurable limit, but still show the dialog?\n> \n> Do people really care that much about configuring this limit to warrant\n> something like this?\n> \n> \n> Talking about auto compression, would it be a better idea to let users\n> disable the dialog, and then if they do want auto compression, they can\n> just run a cron job (or the Windows equivalent) to do this on their\n> repos? What reasons do people have to have this feature in git-gui,\n> instead of running cron jobs?\n> \n"},{"id":"383222","messageId":"20191001180005.iemqmlbn7ncv3dav@yadavpratyush.com","threadId":"51927","inReplyTo":"9d77189d-a357-ab0a-6cb5-e87ecdeffb91@kdbg.org","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Pratyush Yadav","fromEmail":"me@yadavpratyush.com","sentAt":"2019-10-01T18:00:05Z","receivedAt":"2019-10-01T18:00:11Z","isPatch":false,"sender":{"key":"me@yadavpratyush.com","avatar":"https://avatars.githubusercontent.com/u/8817931?v=4"},"body":"On 26/09/19 11:13PM, Johannes Sixt wrote:\n> Am 26.09.19 um 21:15 schrieb Pratyush Yadav:\n> > Reading the Stackoverflow link, it seems this is already possible via an \n> > undocumented config variable \"gui.gcwarning\". I haven't tried using it \n> > though, but I see no reason for it to not work (looking at \n> > git-gui.sh:4141).\n> \n> Ah! That explains why I don't see the message on one of my computers,\n> but I do see on others. I must have reset gui.gcwarning there a decade\n> ago, and forgot about it.\n> \n> > Maybe we should add this variable in the options dialog, so people at \n> > least know it exists?\n> \n> That may be the most reasonable thing to do, IMO.\n> \n> >> What about a configurable limit, but still show the dialog?\n> > \n> > Do people really care that much about configuring this limit to warrant \n> > something like this? \n> \n> Never mind. We don't need it if there is a simple switch.\n> \n> > Talking about auto compression, would it be a better idea to let users \n> > disable the dialog, and then if they do want auto compression, they can \n> > just run a cron job (or the Windows equivalent) to do this on their \n> > repos? What reasons do people have to have this feature in git-gui, \n> > instead of running cron jobs?\n> \n> This is a GUI. It was intended for people with a dislike of the command\n> line. If you avoid the command line as much as possible, you never get\n> to see any object statistics; yet, all operations would slow down\n> gradually due to object bloat with no way out. Remember that this\n> feature was invented long before auto-gc came to existence. Not to\n> mention that git-gui uses plumbing mostly where auto-gc would not\n> trigger anyway.\n\nMarc's reply to this thread seems to suggest he has had a great \nexperience with this feature disabled, because \"the rest of git's \nauto-gc machinery is now working quite well (compared to when git-gui \nwas first introduced)\".\n\nI personally am not very familiar with the details of Git's auto-gc, and \nGoogling around didn't really give out any promising results.\n\nWhat I gather from reading the man page is that \"some commands\" run \ngit-gc automatically. There isn't much mention of which those commands \nare. But you say that plumbing does not trigger auto-gc, so it would not \nget triggered by people using git-gui.\n\nSo here's what I propose: why don't we try to do something similar? What \nabout running `git-gc --auto` in the background when the user makes a \ncommit (which I assume is the most common operation in git-gui). This \nwould be disabled when the user sets gc.auto to 0.\n\nThis way, we keep a similar experience to the command line in case of \nauto-gc, and we get rid of the prompt. People who don't want \nauto-compression can just set gc.auto to 0, which they should do anyway.\n\nThoughts?\n\n-- \nRegards,\nPratyush Yadav\n"},{"id":"383256","messageId":"CAGr--=Jv2Zh7meg3V8Q5EyTZZF=4v465+wzBx2YNmrFbq3PAhA@mail.gmail.com","threadId":"51927","inReplyTo":"20191001180005.iemqmlbn7ncv3dav@yadavpratyush.com","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Birger Skogeng Pedersen","fromEmail":"birger.sp@gmail.com","sentAt":"2019-10-02T07:12:03Z","receivedAt":"2019-10-02T07:14:55Z","isPatch":false,"sender":{"key":"birger.sp@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5260237?v=4"},"body":"On Tue, Oct 1, 2019 at 8:00 PM Pratyush Yadav <me@yadavpratyush.com> wrote:\n> So here's what I propose: why don't we try to do something similar? What\n> about running `git-gc --auto` in the background when the user makes a\n> commit (which I assume is the most common operation in git-gui). This\n> would be disabled when the user sets gc.auto to 0.\n>\n> This way, we keep a similar experience to the command line in case of\n> auto-gc, and we get rid of the prompt. People who don't want\n> auto-compression can just set gc.auto to 0, which they should do anyway.\n\nFWIW that proposal sounds pretty good to me.\n\nBirger\n"},{"id":"383294","messageId":"493aa11d-21db-e759-6be3-2c6b8f287a0b@kdbg.org","threadId":"51927","inReplyTo":"20191001180005.iemqmlbn7ncv3dav@yadavpratyush.com","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2019-10-02T18:48:56Z","receivedAt":"2019-10-02T18:49:00Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 01.10.19 um 20:00 schrieb Pratyush Yadav:\n> So here's what I propose: why don't we try to do something similar? What \n> about running `git-gc --auto` in the background when the user makes a \n> commit (which I assume is the most common operation in git-gui). This \n> would be disabled when the user sets gc.auto to 0.\n\nSounds good.\n\n-- Hannes\n"},{"id":"383304","messageId":"d774be5e-e451-5435-f131-19020062fee9@xiplink.com","threadId":"51927","inReplyTo":"20191001180005.iemqmlbn7ncv3dav@yadavpratyush.com","subject":"Re: git-gui: disable the \"loose objects popup\" dialog?","fromName":"Marc Branchaud","fromEmail":"marcnarc@xiplink.com","sentAt":"2019-10-02T20:41:46Z","receivedAt":"2019-10-02T20:51:43Z","isPatch":false,"sender":{"key":"marcnarc@xiplink.com","avatar":"https://avatars.githubusercontent.com/u/14980203?v=4"},"body":"On 2019-10-01 2:00 p.m., Pratyush Yadav wrote:\n> \n> So here's what I propose: why don't we try to do something similar? What\n> about running `git-gc --auto` in the background when the user makes a\n> commit (which I assume is the most common operation in git-gui). This\n> would be disabled when the user sets gc.auto to 0.\n> \n> This way, we keep a similar experience to the command line in case of\n> auto-gc, and we get rid of the prompt. People who don't want\n> auto-compression can just set gc.auto to 0, which they should do anyway.\n> \n> Thoughts?\n> \n\n+1 from me.\n\n\t\tM.\n\n"},{"id":"538057","messageId":"091e68fa-428d-48b0-bf7d-42b01660d6eb@app.fastmail.com","threadId":"51927","inReplyTo":"493aa11d-21db-e759-6be3-2c6b8f287a0b@kdbg.org","subject":"[PATCH 0/4] run auto maintenance in git-gui","fromName":"Wolfgang Faust","fromEmail":"contrib-git@wolfgangfaust.com","sentAt":"2026-03-06T05:15:56Z","receivedAt":"2026-03-06T05:18:37Z","isPatch":true,"sender":{"key":"contrib-git@wolfgangfaust.com","avatar":null},"body":"Resurrecting the 2019 conversation \"git-gui: disable the \"loose objects\npopup\" dialog?\":\n<https://lore.kernel.org/git/CAGr--=K15nUcnsJWOP87uMMjeQmTgAeO_6hnr12k2zuNQjNyBw@mail.gmail.com/t/#u>\n\nThe consensus there seems to be that git's auto maintenance is now\ngood enough and if git-gui implemented the same behavior as `git commit`\nthen the \"repository currently has approximately %i loose objects\"\ndialog would no longer be necessary. This patch series implements that.\n\nWolfgang Faust (4):\n  git-gui: run auto maintenance on commit\n  git-gui: remove hint_gc dialog\n  git-gui: remove \"Compress Database\" feature\n  scalar: remove obsolete gui.GCWarning setting\n\n Documentation/config/gui.adoc |  5 -----\n Documentation/scalar.adoc     |  6 ------\n git-gui/git-gui.sh            |  6 ------\n git-gui/lib/commit.tcl        |  6 ++++++\n git-gui/lib/database.tcl      | 40 -----------------------------------\n git-gui/po/bg.po              | 22 -------------------\n git-gui/po/de.po              | 27 -----------------------\n git-gui/po/el.po              | 27 -----------------------\n git-gui/po/fr.po              | 28 ------------------------\n git-gui/po/hu.po              | 27 -----------------------\n git-gui/po/it.po              | 26 -----------------------\n git-gui/po/ja.po              | 26 -----------------------\n git-gui/po/nb.po              | 27 -----------------------\n git-gui/po/pt_br.po           | 27 -----------------------\n git-gui/po/pt_pt.po           | 27 -----------------------\n git-gui/po/ru.po              | 20 ------------------\n git-gui/po/sv.po              | 27 -----------------------\n git-gui/po/vi.po              | 27 -----------------------\n git-gui/po/zh_cn.po           | 26 -----------------------\n scalar.c                      |  1 -\n t/t9210-scalar.sh             | 20 +++++++++---------\n 21 files changed, 16 insertions(+), 432 deletions(-)\n\n\nbase-commit: 7b2bccb0d58d4f24705bf985de1f4612e4cf06e5\n-- \n2.52.0\n\n"},{"id":"538059","messageId":"339285be-38e8-426a-add3-b91e14a8be35@app.fastmail.com","threadId":"51927","inReplyTo":"091e68fa-428d-48b0-bf7d-42b01660d6eb@app.fastmail.com","subject":"[PATCH 1/4] git-gui: run auto maintenance on commit","fromName":"Wolfgang Faust","fromEmail":"contrib-git@wolfgangfaust.com","sentAt":"2026-03-06T05:26:59Z","receivedAt":"2026-03-06T05:28:27Z","isPatch":true,"sender":{"key":"contrib-git@wolfgangfaust.com","avatar":null},"body":"This implements the same behavior as seen in builtin/commit.c:\nrun auto maintenance between rerere and the post-commit hook.\n\nSigned-off-by: Wolfgang Faust <contrib-git@wolfgangfaust.com>\n---\n(This email was previously accidentally sent with incorrect threading.\nPlease ignore the dup and bear with me as I figure out send-email...)\n\nThis always detaches rather than honoring autoDetach (unlike\nrun_auto_maintenance()) because I can't think of a circumstance where\nyou'd want the GUI to block.\n\n git-gui/lib/commit.tcl | 6 ++++++\n 1 file changed, 6 insertions(+)\n\ndiff --git a/git-gui/lib/commit.tcl b/git-gui/lib/commit.tcl\nindex 89eb8c7b73..4b07cb3bbb 100644\n--- a/git-gui/lib/commit.tcl\n+++ b/git-gui/lib/commit.tcl\n@@ -477,6 +477,12 @@ A rescan will be automatically started now.\n \t\tcatch {git rerere}\n \t}\n \n+\t# -- Run auto maintenance (e.g. garbage collection)\n+\t#\n+\tif {[is_config_true maintenance.auto]} {\n+\t\tcatch {exec git maintenance run --auto --quiet --detach}\n+\t}\n+\n \t# -- Run the post-commit hook.\n \t#\n \tset fd_ph [githook_read post-commit]\n-- \n2.52.0\n"},{"id":"538061","messageId":"0b3b83e4-c77e-4cd1-9ab8-0a1eaad53983@app.fastmail.com","threadId":"51927","inReplyTo":"091e68fa-428d-48b0-bf7d-42b01660d6eb@app.fastmail.com","subject":"[PATCH 2/4] git-gui: remove hint_gc dialog","fromName":"Wolfgang Faust","fromEmail":"contrib-git@wolfgangfaust.com","sentAt":"2026-03-06T05:30:47Z","receivedAt":"2026-03-06T05:31:29Z","isPatch":true,"sender":{"key":"contrib-git@wolfgangfaust.com","avatar":null},"body":"Now that git-gui runs auto maintenance on commit, large piles of loose objects\nare no longer a concern so we don't need to bother the user about them.\n\nSigned-off-by: Wolfgang Faust <contrib-git@wolfgangfaust.com>\n---\n Documentation/config/gui.adoc |  5 -----\n git-gui/git-gui.sh            |  3 ---\n git-gui/lib/database.tcl      | 26 --------------------------\n git-gui/po/bg.po              | 16 ----------------\n git-gui/po/de.po              | 17 -----------------\n git-gui/po/el.po              | 17 -----------------\n git-gui/po/fr.po              | 18 ------------------\n git-gui/po/hu.po              | 17 -----------------\n git-gui/po/it.po              | 16 ----------------\n git-gui/po/ja.po              | 16 ----------------\n git-gui/po/nb.po              | 17 -----------------\n git-gui/po/pt_br.po           | 17 -----------------\n git-gui/po/pt_pt.po           | 17 -----------------\n git-gui/po/ru.po              | 10 ----------\n git-gui/po/sv.po              | 17 -----------------\n git-gui/po/vi.po              | 17 -----------------\n git-gui/po/zh_cn.po           | 16 ----------------\n 17 files changed, 262 deletions(-)\n\ndiff --git a/Documentation/config/gui.adoc b/Documentation/config/gui.adoc\nindex 1565c0af19..171be774d2 100644\n--- a/Documentation/config/gui.adoc\n+++ b/Documentation/config/gui.adoc\n@@ -55,8 +55,3 @@ gui.blamehistoryctx::\n \tlinkgit:gitk[1] for the selected commit, when the `Show History\n \tContext` menu item is invoked from 'git gui blame'. If this\n \tvariable is set to zero, the whole history is shown.\n-\n-gui.GCWarning::\n-\tDetermines whether linkgit:git-gui[1] should prompt for garbage\n-\tcollection when git detects a large number of loose objects in\n-\tthe repository. The default value is \"true\".\ndiff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh\nindex d3d3aa14a9..29b708f9c8 100755\n--- a/git-gui/git-gui.sh\n+++ b/git-gui/git-gui.sh\n@@ -3940,9 +3940,6 @@ after 1 {\n \t\t$ui_comm configure -state disabled -background gray\n \t}\n }\n-if {[is_enabled multicommit] && ![is_config_false gui.gcwarning]} {\n-\tafter 1000 hint_gc\n-}\n if {[is_enabled retcode]} {\n \tbind . <Destroy> {+terminate_me %W}\n }\ndiff --git a/git-gui/lib/database.tcl b/git-gui/lib/database.tcl\nindex 78732d8651..9b4cc98df5 100644\n--- a/git-gui/lib/database.tcl\n+++ b/git-gui/lib/database.tcl\n@@ -86,29 +86,3 @@ proc do_fsck_objects {} {\n \tlappend cmd --strict\n \tconsole::exec $w $cmd\n }\n-\n-proc hint_gc {} {\n-\tset ndirs 1\n-\tset limit 8\n-\tif {[is_Windows]} {\n-\t\tset ndirs 4\n-\t\tset limit 1\n-\t}\n-\n-\tset count [llength [glob \\\n-\t\t-nocomplain \\\n-\t\t-- \\\n-\t\t[gitdir objects 4\\[0-[expr {$ndirs-1}]\\]/*]]]\n-\n-\tif {$count >= $limit * $ndirs} {\n-\t\tset objects_current [expr {$count * 256/$ndirs}]\n-\t\tif {[ask_popup \\\n-\t\t\t[mc \"This repository currently has approximately %i loose objects.\n-\n-To maintain optimal performance it is strongly recommended that you compress the database.\n-\n-Compress the database now?\" $objects_current]] eq yes} {\n-\t\t\tdo_gc\n-\t\t}\n-\t}\n-}\ndiff --git a/git-gui/po/bg.po b/git-gui/po/bg.po\nindex ff5adb25cc..2670bbb4ef 100644\n--- a/git-gui/po/bg.po\n+++ b/git-gui/po/bg.po\n@@ -1167,22 +1167,6 @@ msgstr \"Компресиране на базата с данни за обект\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Проверка на базата с данни за обектите с програмата „fsck-objects“\"\n \n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"В това хранилище в момента има към %i непакетирани обекти.\\n\"\n-\"\\n\"\n-\"За добра производителност се препоръчва да компресирате базата с данни за \"\n-\"обектите.\\n\"\n-\"\\n\"\n-\"Да се започне ли компресирането?\"\n-\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\n msgstr \"Неправилни данни от Git: %s\"\ndiff --git a/git-gui/po/de.po b/git-gui/po/de.po\nindex a8d5f61ca3..490ed25e0d 100644\n--- a/git-gui/po/de.po\n+++ b/git-gui/po/de.po\n@@ -2682,23 +2682,6 @@ msgstr \"Objektdatenbank komprimieren\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Die Objektdatenbank durch »fsck-objects« überprüfen lassen\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Dieses Repository enthält ungefähr %i nicht verknüpfte Objekte.\\n\"\n-\"\\n\"\n-\"Für eine optimale Performance wird empfohlen, die Datenbank des Repository \"\n-\"zu komprimieren.\\n\"\n-\"\\n\"\n-\"Soll die Datenbank jetzt komprimiert werden?\"\n-\n #: lib/error.tcl:20\n #, tcl-format\n msgid \"%s: error\"\ndiff --git a/git-gui/po/el.po b/git-gui/po/el.po\nindex 3634ba469d..1c77b98b14 100644\n--- a/git-gui/po/el.po\n+++ b/git-gui/po/el.po\n@@ -1410,23 +1410,6 @@ msgid \"Verifying the object database with fsck-objects\"\n msgstr \"\"\n \"Γίνεται επαλήθευση της βάσης δεδομένων αντικειμένων με αντικείμενα fsck\"\n \n-#: lib/database.tcl:108\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database when more than %i loose objects exist.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Αυτό το αποθετήριο έχει αυτή τη στιγμή περίπου %i ελεύθερα αντικείμενα.\\n\"\n-\"\\n\"\n-\"Για τη διατήρηση βέλτιστων επιδόσεων συνιστάται να συμπιέσετε τη βάση \"\n-\"δεδομένων όταν υπάρχουν περισσότερα από %i ελεύθερα αντικείμενα.\\n\"\n-\"\\n\"\n-\"Συμπίεση της βάσης δεδομένων τώρα;\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\ndiff --git a/git-gui/po/fr.po b/git-gui/po/fr.po\nindex 878df65399..9da3e09ba2 100644\n--- a/git-gui/po/fr.po\n+++ b/git-gui/po/fr.po\n@@ -1556,24 +1556,6 @@ msgstr \"Compression de la base des objets\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Vérification de la base des objets avec fsck-objects\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Ce dépôt comprend actuellement environ %i objets ayant leur fichier \"\n-\"particulier.\\n\"\n-\"\\n\"\n-\"Pour conserver une performance optimale, il est fortement recommandé de \"\n-\"comprimer la base de donnée.\\n\"\n-\"\\n\"\n-\"Comprimer la base maintenant ?\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\ndiff --git a/git-gui/po/hu.po b/git-gui/po/hu.po\nindex d106dadac8..4404af74d6 100644\n--- a/git-gui/po/hu.po\n+++ b/git-gui/po/hu.po\n@@ -1505,23 +1505,6 @@ msgstr \"Az objektum adatbázis tömörítése\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Az objektum adatbázis ellenőrzése az fsck-objects használatával\"\n \n-#: lib/database.tcl:108\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database when more than %i loose objects exist.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Ennek a repónak jelenleg %i különálló objektuma van.\\n\"\n-\"\\n\"\n-\"Az optimális teljesítményhez erősen ajánlott az adatbázis tömörítése, ha \"\n-\"több mint %i objektum létezik.\\n\"\n-\"\\n\"\n-\"Lehet most tömöríteni az adatbázist?\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\ndiff --git a/git-gui/po/it.po b/git-gui/po/it.po\nindex 1bd8b8e04f..b590dfbbd0 100644\n--- a/git-gui/po/it.po\n+++ b/git-gui/po/it.po\n@@ -1552,22 +1552,6 @@ msgstr \"Compressione dell'archivio in corso\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Verifica dell'archivio con fsck-objects in corso\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Questo archivio attualmente ha circa %i oggetti slegati.\\n\"\n-\"\\n\"\n-\"Per mantenere buone prestazioni si raccomanda di comprimere l'archivio.\\n\"\n-\"\\n\"\n-\"Comprimere l'archivio ora?\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\ndiff --git a/git-gui/po/ja.po b/git-gui/po/ja.po\nindex 2f61153ab9..d52bcd7f8c 100644\n--- a/git-gui/po/ja.po\n+++ b/git-gui/po/ja.po\n@@ -1939,22 +1939,6 @@ msgstr \"データベース圧縮\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"fsck-objects でオブジェクト・データベースを検証しています\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"このリポジトリにはおおよそ %i 個の個別オブジェクトがあります\\n\"\n-\"\\n\"\n-\"最適な性能を保つために、データベースを圧縮することを推奨します\\n\"\n-\"\\n\"\n-\"データベースを圧縮しますか？\"\n-\n #: lib/transport.tcl:6 lib/remote_add.tcl:132\n #, tcl-format\n msgid \"fetch %s\"\ndiff --git a/git-gui/po/nb.po b/git-gui/po/nb.po\nindex d66aa50263..4b6e5136b0 100644\n--- a/git-gui/po/nb.po\n+++ b/git-gui/po/nb.po\n@@ -1462,23 +1462,6 @@ msgstr \"Komprimerer objektdatabasen\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Verifiserer objektdatabasen med fsck-objects\"\n \n-#: lib/database.tcl:108\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database when more than %i loose objects exist.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Dette arkivet inneholder omtrent %i 'løse' objekter.\\n\"\n-\"\\n\"\n-\"For å sikre en optimal ytelse er det sterkt anbefalt at du komprimerer \"\n-\"databasen når det er flere enn %i 'løse' objekter i den.\\n\"\n-\"\\n\"\n-\"Komprimere databasen nå?\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\ndiff --git a/git-gui/po/pt_br.po b/git-gui/po/pt_br.po\nindex bad116c780..8580aaaece 100644\n--- a/git-gui/po/pt_br.po\n+++ b/git-gui/po/pt_br.po\n@@ -1541,23 +1541,6 @@ msgstr \"Compactando banco de dados de objetos\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Verificando banco de dados de objetos com fsck-objects\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Este repositório possui aproximadamente %i objetos soltos.\\n\"\n-\"\\n\"\n-\"Para manter o desempenho ótimo é altamente recomendado que você compacte o \"\n-\"banco de dados.\\n\"\n-\"\\n\"\n-\"Compactar o banco de dados agora?\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\ndiff --git a/git-gui/po/pt_pt.po b/git-gui/po/pt_pt.po\nindex 0ef3c7927d..e6354ce5c0 100644\n--- a/git-gui/po/pt_pt.po\n+++ b/git-gui/po/pt_pt.po\n@@ -2537,23 +2537,6 @@ msgstr \"A comprimir a base de dados de objetos\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"A verificar a base de dados de objetos com fsck-objects\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Este repositório tem aproximadamente %i objetos soltos.\\n\"\n-\"\\n\"\n-\"Para manter o desempenho ótimo é veemente recomendado que comprima a base de \"\n-\"dados.\\n\"\n-\"\\n\"\n-\"Comprimir a base de dados agora?\"\n-\n #: lib/error.tcl:20 lib/error.tcl:116\n msgid \"error\"\n msgstr \"erro\"\ndiff --git a/git-gui/po/ru.po b/git-gui/po/ru.po\nindex 7aebaf809d..4761cc1adb 100644\n--- a/git-gui/po/ru.po\n+++ b/git-gui/po/ru.po\n@@ -2507,16 +2507,6 @@ msgstr \"Сжатие базы объектов\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Проверка базы объектов при помощи fsck\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"Этот репозиторий сейчас содержит примерно %i свободных объектов\\n\\nДля лучшей производительности рекомендуется сжать базу данных.\\n\\nСжать базу данных сейчас?\"\n-\n #: lib/error.tcl:20\n #, tcl-format\n msgid \"%s: error\"\ndiff --git a/git-gui/po/sv.po b/git-gui/po/sv.po\nindex de65c18584..06835f133a 100644\n--- a/git-gui/po/sv.po\n+++ b/git-gui/po/sv.po\n@@ -1612,23 +1612,6 @@ msgstr \"Komprimerar objektdatabasen\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Verifierar objektdatabasen med fsck-objects\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Arkivet har för närvarande omkring %i lösa objekt.\\n\"\n-\"\\n\"\n-\"För att bibehålla optimal prestanda rekommenderas det å det bestämdaste att \"\n-\"du komprimerar databasen.\\n\"\n-\"\\n\"\n-\"Komprimera databasen nu?\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\ndiff --git a/git-gui/po/vi.po b/git-gui/po/vi.po\nindex d956b59a9e..ad0ec7816c 100644\n--- a/git-gui/po/vi.po\n+++ b/git-gui/po/vi.po\n@@ -1598,23 +1598,6 @@ msgstr \"Nén cơ sở dữ liệu đối tượng\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Đang kiểm tra cơ sở dữ liệu đối tượng bằng lệnh fsck\"\n \n-#: lib/database.tcl:107\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"Hiện kho này mất ước chừng khoảng %i đối tượng.\\n\"\n-\"\\n\"\n-\"Để tối ưu hóa hiệu suất, khuyến nghị bạn nên nén cơ sở dữ liệu của mình \"\n-\"lại.\\n\"\n-\"\\n\"\n-\"Nén cơ sở dữ liệu chứ?\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\ndiff --git a/git-gui/po/zh_cn.po b/git-gui/po/zh_cn.po\nindex 91c1be23c2..4412d4ea44 100644\n--- a/git-gui/po/zh_cn.po\n+++ b/git-gui/po/zh_cn.po\n@@ -1388,22 +1388,6 @@ msgstr \"压缩对象数据库\"\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"使用 fsck-objects 验证对象数据库\"\n \n-#: lib/database.tcl:108\n-#, tcl-format\n-msgid \"\"\n-\"This repository currently has approximately %i loose objects.\\n\"\n-\"\\n\"\n-\"To maintain optimal performance it is strongly recommended that you compress \"\n-\"the database when more than %i loose objects exist.\\n\"\n-\"\\n\"\n-\"Compress the database now?\"\n-msgstr \"\"\n-\"该版本库当前约有 %i 个松散对象.\\n\"\n-\"\\n\"\n-\"为达到较优的性能，强烈建议你在松散对象多于 %i 时压缩数据库.\\n\"\n-\"\\n\"\n-\"现在就压缩数据库么?\"\n-\n #: lib/date.tcl:25\n #, tcl-format\n msgid \"Invalid date from Git: %s\"\n-- \n2.52.0\n"},{"id":"538062","messageId":"65650733-1597-469f-9a2a-7358abf10b4e@app.fastmail.com","threadId":"51927","inReplyTo":"091e68fa-428d-48b0-bf7d-42b01660d6eb@app.fastmail.com","subject":"[PATCH 3/4] git-gui: remove \"Compress Database\" feature","fromName":"Wolfgang Faust","fromEmail":"contrib-git@wolfgangfaust.com","sentAt":"2026-03-06T05:32:04Z","receivedAt":"2026-03-06T05:32:28Z","isPatch":true,"sender":{"key":"contrib-git@wolfgangfaust.com","avatar":null},"body":"Now that git-gui runs auto maintenance on commit and we expect that users no\nlonger need to manually compress the database on a regular basis, this feature\nis not necessary.\n\nSigned-off-by: Wolfgang Faust <contrib-git@wolfgangfaust.com>\n---\nThis patch is more to start discussion than something I think is necessarily a\ngood idea: maybe there are other circumstances where this is still useful?\n\n git-gui/git-gui.sh       |  3 ---\n git-gui/lib/database.tcl | 14 --------------\n git-gui/po/bg.po         |  6 ------\n git-gui/po/de.po         | 10 ----------\n git-gui/po/el.po         | 10 ----------\n git-gui/po/fr.po         | 10 ----------\n git-gui/po/hu.po         | 10 ----------\n git-gui/po/it.po         | 10 ----------\n git-gui/po/ja.po         | 10 ----------\n git-gui/po/nb.po         | 10 ----------\n git-gui/po/pt_br.po      | 10 ----------\n git-gui/po/pt_pt.po      | 10 ----------\n git-gui/po/ru.po         | 10 ----------\n git-gui/po/sv.po         | 10 ----------\n git-gui/po/vi.po         | 10 ----------\n git-gui/po/zh_cn.po      | 10 ----------\n 16 files changed, 153 deletions(-)\n\ndiff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh\nindex 29b708f9c8..d2f3ff3e96 100755\n--- a/git-gui/git-gui.sh\n+++ b/git-gui/git-gui.sh\n@@ -2652,9 +2652,6 @@ if {[is_enabled multicommit]} {\n \t.mbar.repository add command -label [mc \"Database Statistics\"] \\\n \t\t-command do_stats\n \n-\t.mbar.repository add command -label [mc \"Compress Database\"] \\\n-\t\t-command do_gc\n-\n \t.mbar.repository add command -label [mc \"Verify Database\"] \\\n \t\t-command do_fsck_objects\n \ndiff --git a/git-gui/lib/database.tcl b/git-gui/lib/database.tcl\nindex 9b4cc98df5..7edb45b5c8 100644\n--- a/git-gui/lib/database.tcl\n+++ b/git-gui/lib/database.tcl\n@@ -29,11 +29,7 @@ proc do_stats {} {\n \tttk::button $w.buttons.close -text [mc Close] \\\n \t\t-default active \\\n \t\t-command [list destroy $w]\n-\tttk::button $w.buttons.gc -text [mc \"Compress Database\"] \\\n-\t\t-default normal \\\n-\t\t-command \"destroy $w;do_gc\"\n \tpack $w.buttons.close -side right\n-\tpack $w.buttons.gc -side left\n \tpack $w.buttons -side bottom -fill x -pady 10 -padx 10\n \n \tttk::labelframe $w.stat -text [mc \"Database Statistics\"]\n@@ -67,16 +63,6 @@ proc do_stats {} {\n \ttkwait window $w\n }\n \n-proc do_gc {} {\n-\tset w [console::new {gc} [mc \"Compressing the object database\"]]\n-\tconsole::chain $w {\n-\t\t{exec git pack-refs --prune}\n-\t\t{exec git reflog expire --all}\n-\t\t{exec git repack -a -d -l}\n-\t\t{exec git rerere gc}\n-\t}\n-}\n-\n proc do_fsck_objects {} {\n \tset w [console::new {fsck-objects} \\\n \t\t[mc \"Verifying the object database with fsck-objects\"]]\ndiff --git a/git-gui/po/bg.po b/git-gui/po/bg.po\nindex 2670bbb4ef..c7f3e57a58 100644\n--- a/git-gui/po/bg.po\n+++ b/git-gui/po/bg.po\n@@ -184,9 +184,6 @@ msgstr \"Визуализация на историята на „%s“\"\n msgid \"Database Statistics\"\n msgstr \"Статистика на базата от данни\"\n \n-msgid \"Compress Database\"\n-msgstr \"Компресиране на базата от данни\"\n-\n msgid \"Verify Database\"\n msgstr \"Проверка на базата от данни\"\n \n@@ -1161,9 +1158,6 @@ msgstr \"%s:\"\n msgid \"%s (%s): Database Statistics\"\n msgstr \"%s (%s): Статистика на базата от данни\"\n \n-msgid \"Compressing the object database\"\n-msgstr \"Компресиране на базата с данни за обектите\"\n-\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Проверка на базата с данни за обектите с програмата „fsck-objects“\"\n \ndiff --git a/git-gui/po/de.po b/git-gui/po/de.po\nindex 490ed25e0d..c9d197335e 100644\n--- a/git-gui/po/de.po\n+++ b/git-gui/po/de.po\n@@ -246,11 +246,6 @@ msgstr \"Historie von »%s« darstellen\"\n #: git-gui.sh:2799 lib/database.tcl:40\n msgid \"Database Statistics\"\n msgstr \"Datenbankstatistik\"\n-\n-#: git-gui.sh:2802 lib/database.tcl:33\n-msgid \"Compress Database\"\n-msgstr \"Datenbank komprimieren\"\n-\n #: git-gui.sh:2805\n msgid \"Verify Database\"\n msgstr \"Datenbank überprüfen\"\n@@ -2673,11 +2668,6 @@ msgstr \"Dateien im Mülleimer\"\n #, tcl-format\n msgid \"%s (%s): Database Statistics\"\n msgstr \"%s (%s): Datenbankstatistik\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Objektdatenbank komprimieren\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Die Objektdatenbank durch »fsck-objects« überprüfen lassen\"\ndiff --git a/git-gui/po/el.po b/git-gui/po/el.po\nindex 1c77b98b14..5f780f4c5b 100644\n--- a/git-gui/po/el.po\n+++ b/git-gui/po/el.po\n@@ -197,11 +197,6 @@ msgstr \"Απεικόνιση Ιστορικού του %s\"\n #: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67\n msgid \"Database Statistics\"\n msgstr \"Στατιστικά Βάσης Δεδομένων\"\n-\n-#: git-gui.sh:1909 lib/database.tcl:34\n-msgid \"Compress Database\"\n-msgstr \"Συμπίεση Βάσης Δεδομένων\"\n-\n #: git-gui.sh:1912\n msgid \"Verify Database\"\n msgstr \"Επαλήθευση Βάσης Δεδομένων\"\n@@ -1400,11 +1395,6 @@ msgstr \"Πακεταρισμένα αντικείμενα έτοιμα για κ\n #: lib/database.tcl:49\n msgid \"Garbage files\"\n msgstr \"Άχρηστα αρχεία\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Γίνεται συμπίεση της βάσης δεδομένων αντικειμένων\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"\"\ndiff --git a/git-gui/po/fr.po b/git-gui/po/fr.po\nindex 9da3e09ba2..d0354ed8ff 100644\n--- a/git-gui/po/fr.po\n+++ b/git-gui/po/fr.po\n@@ -227,11 +227,6 @@ msgstr \"Voir l'historique de la branche : %s\"\n #: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67\n msgid \"Database Statistics\"\n msgstr \"Statistiques du dépôt\"\n-\n-#: git-gui.sh:2513 lib/database.tcl:34\n-msgid \"Compress Database\"\n-msgstr \"Comprimer le dépôt\"\n-\n #: git-gui.sh:2516\n msgid \"Verify Database\"\n msgstr \"Vérifier le dépôt\"\n@@ -1547,11 +1542,6 @@ msgstr \"Objets empaquetés attendant d'être supprimés\"\n #: lib/database.tcl:49\n msgid \"Garbage files\"\n msgstr \"Fichiers poubelle\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Compression de la base des objets\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Vérification de la base des objets avec fsck-objects\"\ndiff --git a/git-gui/po/hu.po b/git-gui/po/hu.po\nindex 4404af74d6..8141ab13f3 100644\n--- a/git-gui/po/hu.po\n+++ b/git-gui/po/hu.po\n@@ -215,11 +215,6 @@ msgstr \"A(z) %s branch történetének vizualizálása\"\n #: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67\n msgid \"Database Statistics\"\n msgstr \"Adatbázis statisztikák\"\n-\n-#: git-gui.sh:2337 lib/database.tcl:34\n-msgid \"Compress Database\"\n-msgstr \"Adatbázis tömörítése\"\n-\n #: git-gui.sh:2340\n msgid \"Verify Database\"\n msgstr \"Adatbázis ellenőrzése\"\n@@ -1496,11 +1491,6 @@ msgstr \"Eltávolításra váró csomagolt objektumok számra\"\n #: lib/database.tcl:49\n msgid \"Garbage files\"\n msgstr \"Hulladék fájlok\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Az objektum adatbázis tömörítése\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Az objektum adatbázis ellenőrzése az fsck-objects használatával\"\ndiff --git a/git-gui/po/it.po b/git-gui/po/it.po\nindex b590dfbbd0..6e9b8d97b7 100644\n--- a/git-gui/po/it.po\n+++ b/git-gui/po/it.po\n@@ -225,11 +225,6 @@ msgstr \"Visualizza la cronologia di %s\"\n #: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67\n msgid \"Database Statistics\"\n msgstr \"Statistiche dell'archivio\"\n-\n-#: git-gui.sh:2513 lib/database.tcl:34\n-msgid \"Compress Database\"\n-msgstr \"Comprimi l'archivio\"\n-\n #: git-gui.sh:2516\n msgid \"Verify Database\"\n msgstr \"Verifica l'archivio\"\n@@ -1543,11 +1538,6 @@ msgstr \"Oggetti impacchettati che attendono la potatura\"\n #: lib/database.tcl:49\n msgid \"Garbage files\"\n msgstr \"File inutili\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Compressione dell'archivio in corso\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Verifica dell'archivio con fsck-objects in corso\"\ndiff --git a/git-gui/po/ja.po b/git-gui/po/ja.po\nindex d52bcd7f8c..31b59c8e58 100644\n--- a/git-gui/po/ja.po\n+++ b/git-gui/po/ja.po\n@@ -246,11 +246,6 @@ msgstr \"ブランチ %s の履歴を見る\"\n #: git-gui.sh:2719 lib/database.tcl:40 lib/database.tcl:66\n msgid \"Database Statistics\"\n msgstr \"データベース統計\"\n-\n-#: git-gui.sh:2722 lib/database.tcl:33\n-msgid \"Compress Database\"\n-msgstr \"データベース圧縮\"\n-\n #: git-gui.sh:2725\n msgid \"Verify Database\"\n msgstr \"データベース検証\"\n@@ -1930,11 +1925,6 @@ msgstr \"パックに存在するので捨てて良いオブジェクトの数\"\n #: lib/database.tcl:48\n msgid \"Garbage files\"\n msgstr \"ゴミファイル\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"データベース圧縮\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"fsck-objects でオブジェクト・データベースを検証しています\"\ndiff --git a/git-gui/po/nb.po b/git-gui/po/nb.po\nindex 4b6e5136b0..41b8eb9b51 100644\n--- a/git-gui/po/nb.po\n+++ b/git-gui/po/nb.po\n@@ -215,11 +215,6 @@ msgstr \"Visualiser historien til %s\"\n #: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67\n msgid \"Database Statistics\"\n msgstr \"Databasestatistikk\"\n-\n-#: git-gui.sh:2337 lib/database.tcl:34\n-msgid \"Compress Database\"\n-msgstr \"Kompress databasen\"\n-\n #: git-gui.sh:2340\n msgid \"Verify Database\"\n msgstr \"Verifiser databasen\"\n@@ -1453,11 +1448,6 @@ msgstr \"Pakkede objekter som avventer fjerning\"\n #: lib/database.tcl:49\n msgid \"Garbage files\"\n msgstr \"Avfallsfiler\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Komprimerer objektdatabasen\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Verifiserer objektdatabasen med fsck-objects\"\ndiff --git a/git-gui/po/pt_br.po b/git-gui/po/pt_br.po\nindex 8580aaaece..327708b511 100644\n--- a/git-gui/po/pt_br.po\n+++ b/git-gui/po/pt_br.po\n@@ -223,11 +223,6 @@ msgstr \"Visualizar histórico de %s\"\n #: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67\n msgid \"Database Statistics\"\n msgstr \"Estatísticas do banco de dados\"\n-\n-#: git-gui.sh:2513 lib/database.tcl:34\n-msgid \"Compress Database\"\n-msgstr \"Compactar banco de dados\"\n-\n #: git-gui.sh:2516\n msgid \"Verify Database\"\n msgstr \"Verificar banco de dados\"\n@@ -1532,11 +1527,6 @@ msgstr \"Objetos compactados aguardando eliminação\"\n #: lib/database.tcl:49\n msgid \"Garbage files\"\n msgstr \"Arquivos de lixo\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Compactando banco de dados de objetos\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Verificando banco de dados de objetos com fsck-objects\"\ndiff --git a/git-gui/po/pt_pt.po b/git-gui/po/pt_pt.po\nindex e6354ce5c0..498700c91f 100644\n--- a/git-gui/po/pt_pt.po\n+++ b/git-gui/po/pt_pt.po\n@@ -247,11 +247,6 @@ msgstr \"Visualizar histórico de %s\"\n #: git-gui.sh:2719 lib/database.tcl:40 lib/database.tcl:66\n msgid \"Database Statistics\"\n msgstr \"Estatísticas da base de dados\"\n-\n-#: git-gui.sh:2722 lib/database.tcl:33\n-msgid \"Compress Database\"\n-msgstr \"Comprimir base de dados\"\n-\n #: git-gui.sh:2725\n msgid \"Verify Database\"\n msgstr \"Verificar base de dados\"\n@@ -2528,11 +2523,6 @@ msgstr \"Objetos compactados à espera de poda\"\n #: lib/database.tcl:48\n msgid \"Garbage files\"\n msgstr \"Ficheiros de lixo\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"A comprimir a base de dados de objetos\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"A verificar a base de dados de objetos com fsck-objects\"\ndiff --git a/git-gui/po/ru.po b/git-gui/po/ru.po\nindex 4761cc1adb..8151f02d8a 100644\n--- a/git-gui/po/ru.po\n+++ b/git-gui/po/ru.po\n@@ -238,11 +238,6 @@ msgstr \"Показать историю ветки %s\"\n #: git-gui.sh:2799 lib/database.tcl:40\n msgid \"Database Statistics\"\n msgstr \"Статистика базы данных\"\n-\n-#: git-gui.sh:2802 lib/database.tcl:33\n-msgid \"Compress Database\"\n-msgstr \"Сжать базу данных\"\n-\n #: git-gui.sh:2805\n msgid \"Verify Database\"\n msgstr \"Проверить базу данных\"\n@@ -2498,11 +2493,6 @@ msgstr \"Мусор\"\n #, tcl-format\n msgid \"%s (%s): Database Statistics\"\n msgstr \"%s (%s): Статистика базы данных\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Сжатие базы объектов\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Проверка базы объектов при помощи fsck\"\ndiff --git a/git-gui/po/sv.po b/git-gui/po/sv.po\nindex 06835f133a..9509fcda0a 100644\n--- a/git-gui/po/sv.po\n+++ b/git-gui/po/sv.po\n@@ -252,11 +252,6 @@ msgstr \"Visualisera historik för %s\"\n #: git-gui.sh:2824 lib/database.tcl:40\n msgid \"Database Statistics\"\n msgstr \"Databasstatistik\"\n-\n-#: git-gui.sh:2827 lib/database.tcl:33\n-msgid \"Compress Database\"\n-msgstr \"Komprimera databas\"\n-\n #: git-gui.sh:2830\n msgid \"Verify Database\"\n msgstr \"Verifiera databas\"\n@@ -1603,11 +1598,6 @@ msgstr \"%s:\"\n #, tcl-format\n msgid \"%s (%s): Database Statistics\"\n msgstr \"%s (%s): Databasstatistik\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Komprimerar objektdatabasen\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Verifierar objektdatabasen med fsck-objects\"\ndiff --git a/git-gui/po/vi.po b/git-gui/po/vi.po\nindex ad0ec7816c..67b9ee534f 100644\n--- a/git-gui/po/vi.po\n+++ b/git-gui/po/vi.po\n@@ -248,11 +248,6 @@ msgstr \"Duyệt lịch sử của %s trực quan\"\n #: git-gui.sh:2713 lib/database.tcl:40 lib/database.tcl:66\n msgid \"Database Statistics\"\n msgstr \"Thống kê cơ sở dữ liệu\"\n-\n-#: git-gui.sh:2716 lib/database.tcl:33\n-msgid \"Compress Database\"\n-msgstr \"Nén cơ sở dữ liệu\"\n-\n #: git-gui.sh:2719\n msgid \"Verify Database\"\n msgstr \"Thẩm tra cơ sở dữ liệu\"\n@@ -1589,11 +1584,6 @@ msgstr \"Các đối tượng gói chờ xén bớt\"\n #: lib/database.tcl:48\n msgid \"Garbage files\"\n msgstr \"Các tập tin rác\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"Nén cơ sở dữ liệu đối tượng\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"Đang kiểm tra cơ sở dữ liệu đối tượng bằng lệnh fsck\"\ndiff --git a/git-gui/po/zh_cn.po b/git-gui/po/zh_cn.po\nindex 4412d4ea44..f7d290af7d 100644\n--- a/git-gui/po/zh_cn.po\n+++ b/git-gui/po/zh_cn.po\n@@ -214,11 +214,6 @@ msgstr \"图示 %s 分支的历史\"\n #: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67\n msgid \"Database Statistics\"\n msgstr \"数据库统计信息\"\n-\n-#: git-gui.sh:1909 lib/database.tcl:34\n-msgid \"Compress Database\"\n-msgstr \"压缩数据库\"\n-\n #: git-gui.sh:1912\n msgid \"Verify Database\"\n msgstr \"验证数据库\"\n@@ -1379,11 +1374,6 @@ msgstr \"压缩对象等待清理\"\n #: lib/database.tcl:49\n msgid \"Garbage files\"\n msgstr \"垃圾文件\"\n-\n-#: lib/database.tcl:72\n-msgid \"Compressing the object database\"\n-msgstr \"压缩对象数据库\"\n-\n #: lib/database.tcl:83\n msgid \"Verifying the object database with fsck-objects\"\n msgstr \"使用 fsck-objects 验证对象数据库\"\n-- \n2.52.0\n"},{"id":"538063","messageId":"5d9f0b07-c81f-42be-9d91-9deeb209ae1e@app.fastmail.com","threadId":"51927","inReplyTo":"091e68fa-428d-48b0-bf7d-42b01660d6eb@app.fastmail.com","subject":"[PATCH 4/4] scalar: remove obsolete gui.GCWarning setting","fromName":"Wolfgang Faust","fromEmail":"contrib-git@wolfgangfaust.com","sentAt":"2026-03-06T05:32:54Z","receivedAt":"2026-03-06T05:33:16Z","isPatch":true,"sender":{"key":"contrib-git@wolfgangfaust.com","avatar":null},"body":"The git-gui tool now uses automatic maintenance and no longer uses this\nconfig to prompt the user for manual garbage collection, so scalar no\nlonger needs to maintain this value.\n\nThe tests appear to have selected this setting as a sentinel, so change\nthem to use the similar gc.auto setting instead.\n\nSigned-off-by: Wolfgang Faust <contrib-git@wolfgangfaust.com>\n---\nI assume this one needs to be CC'ed to the scalar maintainers, but I'll\ndo that once the rest of the series settles.\n\n Documentation/scalar.adoc |  6 ------\n scalar.c                  |  1 -\n t/t9210-scalar.sh         | 20 ++++++++++----------\n 3 files changed, 10 insertions(+), 17 deletions(-)\n\ndiff --git a/Documentation/scalar.adoc b/Documentation/scalar.adoc\nindex 5252fb134a..4dbe976b65 100644\n--- a/Documentation/scalar.adoc\n+++ b/Documentation/scalar.adoc\n@@ -285,12 +285,6 @@ gc.auto=0::\n \tThis disables automatic garbage collection, since Scalar uses background\n \tmaintenance to keep the repository data in good shape.\n \n-gui.GCWarning=false::\n-\tSince Scalar disables garbage collection by setting `gc.auto=0`, the\n-\t`git-gui` tool may start to warn about this setting. Disable this\n-\twarning as Scalar's background maintenance configuration makes the\n-\twarning irrelevant.\n-\n index.skipHash=true::\n \tDisable computing the hash of the index contents as it is being written.\n \tThis assists with performance, especially for large index files.\ndiff --git a/scalar.c b/scalar.c\nindex 4efb6ac36d..0a6359ec6d 100644\n--- a/scalar.c\n+++ b/scalar.c\n@@ -150,7 +150,6 @@ static int set_recommended_config(int reconfigure)\n \t\t{ \"fetch.unpackLimit\", \"1\" },\n \t\t{ \"fetch.writeCommitGraph\", \"false\" },\n \t\t{ \"gc.auto\", \"0\" },\n-\t\t{ \"gui.GCWarning\", \"false\" },\n \t\t{ \"index.skipHash\", \"true\", 1 /* Fix previous setting. */ },\n \t\t{ \"index.threads\", \"true\"},\n \t\t{ \"index.version\", \"4\" },\ndiff --git a/t/t9210-scalar.sh b/t/t9210-scalar.sh\nindex 009437a5f3..55f73939bb 100755\n--- a/t/t9210-scalar.sh\n+++ b/t/t9210-scalar.sh\n@@ -202,15 +202,15 @@ test_expect_success 'scalar clone --no-... opts' '\n test_expect_success 'scalar reconfigure' '\n \tgit init one/src &&\n \tscalar register one &&\n-\tgit -C one/src config unset gui.gcwarning &&\n+\tgit -C one/src config unset gc.auto &&\n \tscalar reconfigure one &&\n-\ttest false = \"$(git -C one/src config gui.gcwarning)\" &&\n-\tgit -C one/src config unset gui.gcwarning &&\n+\ttest 0 = \"$(git -C one/src config gc.auto)\" &&\n+\tgit -C one/src config unset gc.auto &&\n \trm one/src/cron.txt &&\n \tGIT_TRACE2_EVENT=\"$(pwd)/reconfigure\" scalar reconfigure -a &&\n \ttest_path_is_file one/src/cron.txt &&\n-\ttest false = \"$(git -C one/src config gui.gcwarning)\" &&\n-\ttest_grep \"GCWarning = false # set by scalar\" one/src/.git/config &&\n+\ttest 0 = \"$(git -C one/src config gc.auto)\" &&\n+\ttest_grep \"auto = 0 # set by scalar\" one/src/.git/config &&\n \ttest_grep \"excludeDecoration = refs/prefetch/\\* # set by scalar\" one/src/.git/config &&\n \n \ttest_subcommand git maintenance start <reconfigure &&\n@@ -234,14 +234,14 @@ test_expect_success 'scalar reconfigure --all with includeIf.onbranch' '\n \t\tgit init $num/src &&\n \t\tscalar register $num/src &&\n \t\tgit -C $num/src config includeif.\"onbranch:foo\".path something &&\n-\t\tgit -C $num/src config unset gui.gcwarning || return 1\n+\t\tgit -C $num/src config unset gc.auto || return 1\n \tdone &&\n \n \tscalar reconfigure --all &&\n \n \tfor num in $repos\n \tdo\n-\t\ttest false = \"$(git -C $num/src config gui.gcwarning)\" || return 1\n+\t\ttest 0 = \"$(git -C $num/src config gc.auto)\" || return 1\n \tdone\n '\n \n@@ -256,7 +256,7 @@ test_expect_success 'scalar reconfigure --all with detached HEADs' '\n \t\trm -rf $num/src &&\n \t\tgit init $num/src &&\n \t\tscalar register $num/src &&\n-\t\tgit -C $num/src config unset gui.gcwarning &&\n+\t\tgit -C $num/src config unset gc.auto &&\n \t\ttest_commit -C $num/src initial &&\n \t\tgit -C $num/src switch --detach HEAD || return 1\n \tdone &&\n@@ -265,7 +265,7 @@ test_expect_success 'scalar reconfigure --all with detached HEADs' '\n \n \tfor num in $repos\n \tdo\n-\t\ttest false = \"$(git -C $num/src config gui.gcwarning)\" || return 1\n+\t\ttest 0 = \"$(git -C $num/src config gc.auto)\" || return 1\n \tdone\n '\n \n@@ -297,7 +297,7 @@ test_expect_success 'scalar supports -c/-C' '\n \tgit init sub &&\n \tscalar -C sub -c status.aheadBehind=bogus register &&\n \ttest -z \"$(git -C sub config --local status.aheadBehind)\" &&\n-\ttest false = \"$(git -C sub config gui.gcwarning)\"\n+\ttest 0 = \"$(git -C sub config gc.auto)\"\n '\n \n test_expect_success '`scalar [...] <dir>` errors out when dir is missing' '\n-- \n2.52.0\n"},{"id":"538175","messageId":"e17f094f-f869-4cc9-b59c-091b7e61a021@kdbg.org","threadId":"51927","inReplyTo":"091e68fa-428d-48b0-bf7d-42b01660d6eb@app.fastmail.com","subject":"Re: [PATCH 0/4] run auto maintenance in git-gui","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2026-03-07T11:32:45Z","receivedAt":"2026-03-07T11:32:55Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 06.03.26 um 06:15 schrieb Wolfgang Faust:\n> Resurrecting the 2019 conversation \"git-gui: disable the \"loose objects\n> popup\" dialog?\":\n> <https://lore.kernel.org/git/CAGr--=K15nUcnsJWOP87uMMjeQmTgAeO_6hnr12k2zuNQjNyBw@mail.gmail.com/t/#u>\n> \n> The consensus there seems to be that git's auto maintenance is now\n> good enough and if git-gui implemented the same behavior as `git commit`\n> then the \"repository currently has approximately %i loose objects\"\n> dialog would no longer be necessary. This patch series implements that.\n\nGenerally, I like the idea.\n\nHowever, the consequences for users need to be considered. You replace\nthe custom implementation of `git gc` with `git maintenance run --auto`.\nThe latter CAN do a lot more than the former. It turns out, that Git GUI\nalready calls into `git maintance` indirectly via `git merge` and `git\nfetch`. So, users who set gui.gcwarning to false (myself included) were\nalready prone to occasional inadvertent cleanups.\n\nSo, users that are hurt by this new change are those where all these\nconditions are true:\n\n- They make commits with Git GUI.\n\n- They configure maintenance.* to do more cleanups than the default\nconfituration (which is the same as `git gc --auto`, I think).\n\n- They never use one of `commit`, `am`, `fetch`, `merge`, `rebase` (and\npossibly more) on the command line.\n\n- They never use `git maintenance run` through some other facility.\n\n- They never use Git GUI's \"Local Merge\" dialog.\n\n- They never use Git GUI's \"Fetch From\" command.\n\n- They still expect certain stale data to *not* be pruned.\n\nHow many could this be? Not many, I guess. The conservative safe\napproach would be to treat gui.gcwarning=false as an indication that\nautomatic cleanup is not desired.\n\n> \n> Wolfgang Faust (4):\n>   git-gui: run auto maintenance on commit\n>   git-gui: remove hint_gc dialog\n>   git-gui: remove \"Compress Database\" feature\n>   scalar: remove obsolete gui.GCWarning setting\n> \n>  Documentation/config/gui.adoc |  5 -----\n>  Documentation/scalar.adoc     |  6 ------\n>  git-gui/git-gui.sh            |  6 ------\n>  git-gui/lib/commit.tcl        |  6 ++++++\n>  git-gui/lib/database.tcl      | 40 -----------------------------------\n>  git-gui/po/bg.po              | 22 -------------------\n>  git-gui/po/de.po              | 27 -----------------------\n>  git-gui/po/el.po              | 27 -----------------------\n>  git-gui/po/fr.po              | 28 ------------------------\n>  git-gui/po/hu.po              | 27 -----------------------\n>  git-gui/po/it.po              | 26 -----------------------\n>  git-gui/po/ja.po              | 26 -----------------------\n>  git-gui/po/nb.po              | 27 -----------------------\n>  git-gui/po/pt_br.po           | 27 -----------------------\n>  git-gui/po/pt_pt.po           | 27 -----------------------\n>  git-gui/po/ru.po              | 20 ------------------\n>  git-gui/po/sv.po              | 27 -----------------------\n>  git-gui/po/vi.po              | 27 -----------------------\n>  git-gui/po/zh_cn.po           | 26 -----------------------\n>  scalar.c                      |  1 -\n>  t/t9210-scalar.sh             | 20 +++++++++---------\n>  21 files changed, 16 insertions(+), 432 deletions(-)\n\nPlease separate the patches such that they modify either only files in\nthe git-gui directory or only files outside it. The git-gui/ patches are\napplied to my repository at https://github.com/j6t/git-gui. Plan the\npatches such that the remaining patches can be applied later when my\nrepository has been merged into the Git repository.\n\nPlease do not modify translation files. It's too much noise. They are\nonly modified when new translations are contributed.\n\n-- Hannes\n\n"},{"id":"538182","messageId":"xmqqms0jti24.fsf@gitster.g","threadId":"51927","inReplyTo":"e17f094f-f869-4cc9-b59c-091b7e61a021@kdbg.org","subject":"Re: [PATCH 0/4] run auto maintenance in git-gui","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-03-07T22:01:55Z","receivedAt":"2026-03-07T22:01:57Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Sixt <j6t@kdbg.org> writes:\n\n> However, the consequences for users need to be considered. You replace\n> the custom implementation of `git gc` with `git maintenance run --auto`.\n> The latter CAN do a lot more than the former. It turns out, that Git GUI\n> already calls into `git maintance` indirectly via `git merge` and `git\n> fetch`. So, users who set gui.gcwarning to false (myself included) were\n> already prone to occasional inadvertent cleanups.\n>\n> So, users that are hurt by this new change are those where all these\n> conditions are true:\n> ...\n> How many could this be? Not many, I guess. The conservative safe\n> approach would be to treat gui.gcwarning=false as an indication that\n> automatic cleanup is not desired.\n\nHmph, if you are _declining_ to see the warning, isn't it a sign\nthat you are getting these warnings and got annoyed enough to find\nout about the settings and turned it to \"false\" to squelch?  And if\nwe make pruning more aggressive, wouldn't gui.gcwarning explicitly\nset to false be a sign that you'd be more likely to be in the\naffected poulation?\n\n"},{"id":"538183","messageId":"40ccd060-e6f7-4130-a25e-3c2f65df8eb7@kdbg.org","threadId":"51927","inReplyTo":"xmqqms0jti24.fsf@gitster.g","subject":"Re: [PATCH 0/4] run auto maintenance in git-gui","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2026-03-07T22:37:56Z","receivedAt":"2026-03-07T22:38:06Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 07.03.26 um 23:01 schrieb Junio C Hamano:\n> Johannes Sixt <j6t@kdbg.org> writes:\n> \n>> However, the consequences for users need to be considered. You replace\n>> the custom implementation of `git gc` with `git maintenance run --auto`.\n>> The latter CAN do a lot more than the former. It turns out, that Git GUI\n>> already calls into `git maintance` indirectly via `git merge` and `git\n>> fetch`. So, users who set gui.gcwarning to false (myself included) were\n>> already prone to occasional inadvertent cleanups.\n>>\n>> So, users that are hurt by this new change are those where all these\n>> conditions are true:\n>> ...\n>> How many could this be? Not many, I guess. The conservative safe\n>> approach would be to treat gui.gcwarning=false as an indication that\n>> automatic cleanup is not desired.\n> \n> Hmph, if you are _declining_ to see the warning, isn't it a sign\n> that you are getting these warnings and got annoyed enough to find\n> out about the settings and turned it to \"false\" to squelch?\n\nThe option does not only control whether or not a warning appears, but\nalso whether garbage collection happens or not. When it is set to false,\nthen in addition to squelching the warning, garbage collection does\n*not* happen. The option is on by default, so if we find it off, the\nuser must have set it explicitly, a clear sign (IMO) that Git GUI should\nnot do the garbage collection.\n\n>  And if\n> we make pruning more aggressive, wouldn't gui.gcwarning explicitly\n> set to false be a sign that you'd be more likely to be in the\n> affected poulation?\nI think so, too. For this reason, my implied suggestion was to protect\nthe new call of `git maintenance` with a check whether gui.gcwarning is\nenabled. Then we don't make anything worse for those who have it disabled.\n\n-- Hannes\n\n"},{"id":"538189","messageId":"xmqqikb6uacw.fsf@gitster.g","threadId":"51927","inReplyTo":"40ccd060-e6f7-4130-a25e-3c2f65df8eb7@kdbg.org","subject":"Re: [PATCH 0/4] run auto maintenance in git-gui","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-03-08T06:02:55Z","receivedAt":"2026-03-08T06:02:58Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Sixt <j6t@kdbg.org> writes:\n\n> The option does not only control whether or not a warning appears, but\n> also whether garbage collection happens or not. When it is set to false,\n> then in addition to squelching the warning, garbage collection does\n> *not* happen.\n\nAh, OK, now what you said makes perfect sense.\n\n> I think so, too. For this reason, my implied suggestion was to protect\n> the new call of `git maintenance` with a check whether gui.gcwarning is\n> enabled. Then we don't make anything worse for those who have it disabled.\n\nGood.\n\nThanks.\n"},{"id":"538553","messageId":"876fd32d-3965-4587-b567-399787741247@app.fastmail.com","threadId":"51927","inReplyTo":"40ccd060-e6f7-4130-a25e-3c2f65df8eb7@kdbg.org","subject":"Re: [PATCH 0/4] run auto maintenance in git-gui","fromName":"Wolfgang Faust","fromEmail":"contrib-git@wolfgangfaust.com","sentAt":"2026-03-11T04:48:36Z","receivedAt":"2026-03-11T04:49:00Z","isPatch":true,"sender":{"key":"contrib-git@wolfgangfaust.com","avatar":null},"body":"On Sat, Mar 7, 2026, at 2:37 PM, Johannes Sixt wrote:\n> Am 07.03.26 um 23:01 schrieb Junio C Hamano:\n>> Johannes Sixt <j6t@kdbg.org> writes:\n>>> So, users that are hurt by this new change are those where all these\n>>> conditions are true:\n>>> ...\n>>> How many could this be? Not many, I guess. The conservative safe\n>>> approach would be to treat gui.gcwarning=false as an indication that\n>>> automatic cleanup is not desired.\n>\n> The option does not only control whether or not a warning appears, but\n> also whether garbage collection happens or not. When it is set to false,\n> then in addition to squelching the warning, garbage collection does\n> *not* happen. The option is on by default, so if we find it off, the\n> user must have set it explicitly, a clear sign (IMO) that Git GUI should\n> not do the garbage collection.\n\nI see your point about not garbage-collecting for people who haven't\nbeen expecting it, but on the other hand, checking `gui.gcwarning`\nwould not help the people who were achieving the same result by\nclicking \"No\" every time.\n\nHowever, it seems to me that the conditions you outlined are very\nunlikely. In particular:\n\n> - They configure maintenance.* to do more cleanups than the default\n> confituration (which is the same as `git gc --auto`, I think).\n>\n> - They never use `git maintenance run` through some other facility.\n\nAre these not more or less mutually exclusive? Why would someone set\nup maintenance to do things, and then never run maintenance?\n\nGiven the above, I see two options:\n\n1. Assume that in practice everybody wants auto maintenance and\n   `gui.gcwarning` is set because they were annoyed by the dialog.\n2. Assume that some people do *not* want auto maintenance, and if the\n   `gui.gcmaintenance` option is unset then show some kind of dialog\n   that tries to explain the situation to the user and encourages them\n   to set `gui.gcmaintenance=auto`.\n\n#2 is the safer option, but is rather complicated and involves\nbothering every user for the sake of strict compatibility. I assume\nthat git core itself had to make a similar tradeoff when deciding to\nenable automatic garbage collection, but I don't know where I'd find\nthat discussion and perhaps it's far enough in the past that the\nrationales are no longer relevant anyway.\n"},{"id":"538880","messageId":"7905c1d6-ae6e-4930-b4bf-d1129685d10f@kdbg.org","threadId":"51927","inReplyTo":"876fd32d-3965-4587-b567-399787741247@app.fastmail.com","subject":"Re: [PATCH 0/4] run auto maintenance in git-gui","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2026-03-13T12:38:57Z","receivedAt":"2026-03-13T12:39:06Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 11.03.26 um 05:48 schrieb Wolfgang Faust:\n> However, it seems to me that the conditions you outlined are very\n> unlikely.\n\nThis was the whole point of my argument.\n\n> In particular:\n> \n>> - They configure maintenance.* to do more cleanups than the default\n>> confituration (which is the same as `git gc --auto`, I think).\n>>\n>> - They never use `git maintenance run` through some other facility.\n> \n> Are these not more or less mutually exclusive? Why would someone set\n> up maintenance to do things, and then never run maintenance?\n\nThe system configuration could be set to non-default values.\n\nBut it would need quite some determination from a user to side-step any\nand all explicit and implicit `git maintenance` calls on such a system\ninstead of countermanding the configuration in the personal (global or\nlocal) settings.\n\nMy point is only that these conditions aren't mutually exclusive, but\nstill unlikely in practice.\n\n> Given the above, I see two options:\n> \n> 1. Assume that in practice everybody wants auto maintenance and\n>    `gui.gcwarning` is set because they were annoyed by the dialog.\n> 2. Assume that some people do *not* want auto maintenance, and if the\n>    `gui.gcmaintenance` option is unset then show some kind of dialog\n>    that tries to explain the situation to the user and encourages them\n>    to set `gui.gcmaintenance=auto`.\n> \n> #2 is the safer option, but is rather complicated and involves\n> bothering every user for the sake of strict compatibility. I assume\n> that git core itself had to make a similar tradeoff when deciding to\n> enable automatic garbage collection, but I don't know where I'd find\n> that discussion and perhaps it's far enough in the past that the\n> rationales are no longer relevant anyway.\n\nLet's just call `git maintenance` on every commit except when, for\nlegacy reasons, gui.gcwarning is false. No new configuration, please,\nuntil there is proof that Git GUI users really do not want the standard\n`git maintenance` behavior.\n\n-- Hannes\n\n"}]}