备份和迁移后,某些存储库在Web控制台中返回“ No Repository”错误,并且无法克隆。验证该存储库已存在,如git_data_dirs文件夹中所指定。
作为测试,我可以直接从repositories /文件夹中克隆“无存储库”项目,因此存储库本身似乎没有什么问题。
不确定如何复制它,但是这是我经历的步骤:
我为诊断问题所采取的步骤。假设该项目名为myapp / myapp.foo.git:
查看/etc/gitlab/gitlab.rb中的git_data_dirs:
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
我也查看了数据库,'projects.repository_storage'值似乎正确。甚至将其更改为“默认”与“ silo”(这是我的备用目录)似乎也不起作用。
我试图了解gitlab如何确定存储库的位置,因为对repo-path的检查似乎是失败的原因。
迁移完成后,运行sudo gitlab-rake cache:clear
。
答案 0 :(得分:1)
您可能需要清除Redis缓存。尝试运行以下命令:
sudo gitlab-rake cache:clear
Rake是一个通用维护命令,并不是很多用户都知道,因为如果您使用的是纯云产品,则永远不需要它。它实际上仅适用于本地产品。
有时,该问题纯粹是网络连接问题。您还可以使用rake进行检查:
sudo gitlab-rake gitlab:tcp_check[ibm.com,80]
答案 1 :(得分:0)
如果您使用的是docker-compose或docker run,请检查gitlab存储库目录是否具有正确的权限。
在我的情况下,在容器中/ var / opt / gitlab / git-data / repositories / user / my_repos没有正确的权限(出于某种原因我忽略了)。为了解决问题,我不得不更改repos目录的所有权。
即使您没有使用docker,存储库目录上的权限问题也可以解释“无存储库”错误。
希望这会有所帮助