Очистка объектов GIT_DIR / входящих- * временных каталогов - PullRequest
0 голосов
/ 18 марта 2020

Нужно ли что-либо делать для очистки устаревших каталогов с именами, такими как 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...