Gitlab возвращает «Нет хранилища», даже если хранилище существует в пути (ах) git_data_dirs - PullRequest
0 голосов
/ 04 июля 2018

Резюме

После резервного копирования и переноса некоторые репозитории возвращают ошибку «Нет репозитория» в веб-консоли и не могут быть клонированы. Подтверждено, что хранилище существует, как указано в папке 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 после завершения миграции.

...