Резюме
После резервного копирования и переноса некоторые репозитории возвращают ошибку «Нет репозитория» в веб-консоли и не могут быть клонированы. Подтверждено, что хранилище существует, как указано в папке git_data_dirs.
В качестве теста я могу клонировать проект "Нет репозитория" напрямую из репозиториев / папки, поэтому, похоже, нет ничего плохого в самом репо.
Шаги для воспроизведения
Не уверен, как это можно воспроизвести, но вот шаги, которые я прошел:
- резервное копирование проекта на основной сервер
- восстановление архива на новом сервере
- перейдите к пути проекта на веб-панели управления нового сервера и получите «Нет репозитория».
Шаги, которые я предпринял для диагностики проблемы. Скажем, проект называется myapp / myapp.foo.git:
- Перейти к http://newgitserver.local/myapp/myapp.foo.git
- Получить "Нет хранилища"
Посмотрите на git_data_dirs в /etc/gitlab/gitlab.rb:
git_data_dirs ({
"default": {"path": "/ var / opt / gitlab / git-data"},
"silo": {"path": "/ mnt / reposbackup / git-data"}
})
Обратите внимание, что мой проект доступен в обеих папках: /var/opt/gitlab/git-data/repositories/myapp/myapp.foo.git AND / mnt / reposbackup / git-data / repositories / myapp /myapp.foo.git
- Попробуйте перезапустить сервер - тот же результат
- Попробуйте перенастроить sudo gitlab-ctl - тот же результат
- Попробуйте перезапустить службы runv: sudo systemctl restart gitlab-runvdir - тот же результат
Я также просмотрел базу данных, и значение 'projects.repository_storage' кажется правильным. Даже изменение его на «default» против «silo» (которое является моим альтернативным каталогом), похоже, не работает.
Я пытаюсь понять, как gitlab определяет, где находится репозиторий, так как проверка пути к репо, похоже, является ошибкой.
РЕШЕНИЕ
Запустите sudo gitlab-rake cache:clear
после завершения миграции.