On Tue, Dec 6, 2022 at 7:03 PM Derrick Stolee <derrickstolee@xxxxxxxxxx> wrote: > > Instead, the modern recommendation for repositories where "git gc --auto" > would be slow is to run "git maintenance start" which will schedule > background maintenance jobs with the Windows scheduler. Those processes > are built to do updates that are non-invasive to concurrent foreground > processes. It also sets config to avoid "git gc --auto" commands at the > end of foreground Git processes. > > See [1] for more details. > > [1] https://git-scm.com/docs/git-maintenance > Thanks Stolee, I've known about the existence of this system for a while, but I can't quite figure out what's recommended for who, when, given the doc at https://git-scm.com/docs/git-maintenance Clearly on Windows, one reason to do "git maintenance start" is to avoid foregrounded "git gc --auto" runs later. That's a clear enough benefit to say "frequent users of large repos on windows *should* run 'git maintenance start' (or have some setup process or GUI do it for them) on those large repos". Is there a corresponding tangible benefit on MacOS and/or Linux, over simply getting "git gc --auto" do its backgrounded thing when it feels like it? Or is there an eventual plan to *switch* from the current "git gc --auto" spawning to a "git maintenance start" execution when trigger conditions are met? Are there any *dis*advantages to running "git maintenance start" in general or on any given platform? For "my users", I have something like Scalar that can start the maintenance on the repo where it's needed - but it seems like there will be lots of users out there in the world who clone things like the linux repo, which looks like it is big enough to warrant these kinds of concerns, but it doesn't seem obvious that anyone will ever find "https://git-scm.com/docs/git-maintenance" and decide to run "git maintenance start" on their own... As I noted in another email, I propose to replace "Auto packing the repository for optimum performance" with something like "Auto packing the repository for optimum performance; to run this kind of maintenance in the background, see 'git maintenance' at https://git-scm.com/docs/git-maintenance." - but I imagine I'm missing a bigger picture / a long-term plan for how these two mechanisms should interact. My apologies if I've missed one or many conversations about this on the list, but maybe a pointer here can also help me add directional hints at https://git-scm.com/docs/git-maintenance for "outside users"?