Hi Junio, On Fri, 25 Feb 2022 at 06:57, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Style. SP on both sides of '<'. Thanks > It is unclear if it is generally a good idea to pass hardcoded set > of configuration variables to begin with, but provided if it makes > sense [*], the implementation seems OK. My RFC didn't do any repacking, and you (rightly) raised it at https://lore.kernel.org/git/xmqqk0eecpl9.fsf@gitster.g/ >> To note: >> >> 1. This will produce duplicated objects between the existing and newly >> fetched packs, but gc will clean them up. > > ... it is not smart enough to stell them to exclude what we _ought_ > to have by telling them what the _old_ filter spec was. That's OK > for a starting point, I guess. Hopefully, at the end of this > operation, we should garbage collect the duplicated objects by > default (with an option to turn it off)? This was my best stab at (I think) safely doing it — it respects users who have disabled auto-gc/repacking/maintenance, and doesn't add yet another config variable. But we could also: 1. do nothing — the user's object DB will contain duplicate objects until some repacking happens. This could be up to twice the size it "should" be. 2. print a message to suggest running `git gc` / `git maintenance` I'm keen on some input from Derrick or someone deeply familiar with the maintenance/GC bits (particularly wrt incremental repacking) whether what I'm doing would cause issues for people with complex setups I haven't thought of. > Side note. And this is a big *IF*, as we can see in all > other helper functions in run-commands.h, nobody has such a > privision. If supporting such a "feature" makes sense, we > probably would need to do so with a common interface that > can be used across run_command() API, not with an ad-hoc > interface that is only usable with run_auto_maintenance(), > which may look somewhat similar to how we have a common way > to pass set of environment variables. Ævar pointed out GIT_CONFIG_PARAMETERS has an API to wrap it's use, so I can adapt the implementation to use that. Thanks Rob :)