Возможно ли получить `git gc` для упаковки объектов reflog? - PullRequest
2 голосов
/ 07 марта 2019

Как подсказал ответ 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 на действительно большое число, но это приведет к (незначительным?) Проблемам с производительностью в долгосрочной перспективе.

...