Можно ли заставить git gc упаковывать объекты reflog?

Как намекает ответ https://stackoverflow.com/a/32025729, я настроил удаленное голое репо с

git config gc.pruneExpire never
git config gc.reflogExpire never

и в результате я всегда сохраняю все сохраненные коммиты всех веток и тегов, даже если я не придумываю постоянные имена веток или теги для всех этих коммитов.

Однако это приведет к появлению следующего предупреждения в долгосрочной перспективе:

warning: There are too many unreachable loose objects; run 'git prune' to remove them.

Это вызвано тем, что оборванные коммиты, которые я хочу сохранить навсегда, всегда хранятся как незакрепленные объекты.

Есть ли хороший способ заставить git специально включать оборванные коммиты, на которые ссылается только reflog, в пакетных файлах? Это позволило бы поддерживать высокую производительность и не терять безымянную историю.

Я знаю, что могу обойти предупреждение, установив gc.auto на какое-то действительно большое число, но это вызовет (незначительные?) проблемы с производительностью в долгосрочной перспективе.


person Mikko Rantalainen    schedule 07.03.2019    source источник