Нужно ли что-либо делать для очистки устаревших каталогов с именами, такими как objects/incoming-a16812
, в чистом Git хранилище? Есть задание cron, которое запускается git gc
ежемесячно, и оно прекрасно работает, но эти каталоги накапливаются в моих репозиториях.
У меня есть несколько пустых репозиториев, доступ к которым осуществляется через S SH. Просматривая отчет о хранилище для сервера, на котором размещены эти репозитории, я обнаружил, что в каталоге objects
есть несколько старых, временно выглядящих каталогов и файлов с именами, такими как incoming-a16812
, которые выглядят как временные файлы пакета:
# the stat format string is: name type creation-time modification-time
user@host[.../repos/some-repo.git/objects]% find . -exec stat -f $'%N\t%ST\t%Sc\t%Sm' {} ';'
. / Mar 18 00:27:51 2020 Mar 18 00:27:51 2020
./incoming-a16812 / Jul 26 11:29:02 2019 Jul 26 11:29:02 2019
./incoming-a16812/pack / Jul 26 11:29:13 2019 Jul 26 11:29:13 2019
./incoming-a16812/pack/tmp_pack_6CUMWa * Jul 26 11:30:16 2019 Jul 26 11:30:16 2019
./info / Mar 18 00:35:20 2020 Mar 18 00:35:20 2020
./info/packs * Mar 18 00:35:20 2020 Mar 18 00:35:20 2020
./pack / Mar 18 00:35:19 2020 Mar 18 00:35:19 2020
./pack/pack-d8d97cb38e4c80f3148e06981fc66e4ca3c659ea.idx * Mar 18 00:35:19 2020 Mar 18 00:35:19 2020
./pack/pack-d8d97cb38e4c80f3148e06981fc66e4ca3c659ea.pack * Mar 18 00:35:19 2020 Mar 18 00:35:15 2020
... #omitted
Я предполагаю, что эти каталоги остались от прерванного ( Ctrl- C?) Pu sh или чего-то еще.
Мартовский прогон 2020 года git gc
завершено успешно, но я все еще вижу, что эти incoming-*
каталоги возвращаются до июля 2019 года. (Ни одно из этих репозиториев не изменило ни одну из gc*Expire
настроек.)
Ручной запуск git gc --prune=now --aggressive
в одном из репозиториев эти каталоги тоже не очищались.
Ничего интересного в выводе git fsck
:
user@host[.../repos/some-repo.git]% git fsck --unreachable --dangling
Checking object directories: 100% (256/256), done.
Checking objects: 100% (23585/23585), done.
Я видел только один из этих каталогов на время на репо. Не уверен, имеет ли это отношение только к случаю.
Если это имеет значение, в настоящее время на сервере запущена Git версия 2.17.0. Я не уверен в исторических версиях. Сервер работает под управлением FreeBSD 11.2.
Клиенты в основном Windows клиенты. Они также относительно актуальны на Git версиях. Машина, на которой я пишу это, работает под управлением версии 2.25.1. windows .1.