Сервер GitLab: неработающая ссылка с дерева на блоб

Я получил отчет с моего сервера GitLab repocheck.md о том, что в одном из моих репозиториев возникла проблема. Это проблема:

    E, [2020-04-04T10:25:00.323291 #27099] ERROR -- : Could not fsck repository: broken link from tree 8c7ba0f6c712df32e991ae9262f1c7514fd22473
    to blob 806164c98a18ddc2295c246e5509674471d6f54a
    missing blob 806164c98a18ddc2295c246e5509674471d6f54a

Как решить эту проблему на сервере?

У меня есть хорошая копия этого репо на клиенте:

Pete@sev MINGW64 ~/Documents/path/to/client/repo (master)
$ git gc
Enumerating objects: 536, done.
Counting objects: 100% (536/536), done.
Delta compression using up to 8 threads
Compressing objects: 100% (424/424), done.
Writing objects: 100% (536/536), done.
Total 536 (delta 177), reused 338 (delta 104)

Pete@sev MINGW64 ~/Documents/path/to/client/repo (master)
$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (536/536), done.

person BarryPye    schedule 04.04.2020    source источник
comment
Принудительно отправьте хорошую копию на сервер.   -  person fredrik    schedule 04.04.2020
comment
Спасибо. Не исправил. Пробовал git push --force (без исправления), затем git push --force-with-lease (без исправления).   -  person BarryPye    schedule 05.04.2020
comment
В противном случае попробуйте определить из своего локального репо, на какой ветке лежит недостающий объект, затем выполните git push --no-thin branch-at-stake:branch-at-stake.   -  person ErikMD    schedule 05.04.2020
comment
Спасибо. Хорошее предложение о --no-thin! Все равно не устранил проблему. Здесь это похоже на нерешенную проблему: stackoverflow.com/questions/52428788/. Также попытался запустить git-repair в каталоге сервера, но без исправления. Затем скопирует содержимое каталога .git на мой сервер (после создания архива существующего содержимого сервера) и повторно просканирует с помощью git fsck --full. Ожидая славы с этим.   -  person BarryPye    schedule 05.04.2020
comment
... и ЭТО исправило это.   -  person BarryPye    schedule 05.04.2020


Ответы (1)


Поскольку принудительное нажатие из хорошего локального репозитория и git-repair на сервере не решило проблему, скопировал содержимое каталога .git из хорошего локального репо в файловое пространство сервера (заменив все содержимое в каталоге repo.git/). Затем запустил git fsck --full, чтобы убедиться, что проблема исчезла. И это исчезло.

person BarryPye    schedule 05.04.2020