【发布时间】:2018-12-13 06:22:12
【问题描述】:
总结
备份迁移后,部分仓库在网页控制台返回“No Repository”错误,无法克隆。已验证存储库是否存在,如 git_data_dirs 文件夹中指定的那样。
作为测试,我可以直接从 repositories/ 文件夹中克隆“No repository”项目,因此 repo 本身似乎没有任何问题。
重现步骤
不确定如何复制它,但这是我经历的步骤:
- 主服务器上的备份项目
- 在新服务器上恢复 tarball
- 转到新服务器的 Web 仪表板中的项目路径,并获得“No Repository”。
我为诊断问题所采取的步骤。假设项目名为 myapp/myapp.foo.git:
- 转到http://newgitserver.local/myapp/myapp.foo.git
- 获取“无存储库”
-
查看/etc/gitlab/gitlab.rb中的git_data_dirs:
git_data_dirs({ “默认”:{“路径”:“/var/opt/gitlab/git-data”}, “筒仓”:{“路径”:“/mnt/reposbackup/git-data”} })
请注意,我的项目在以下两个文件夹中都可用:/var/opt/gitlab/git-data/repositories/myapp/myapp.foo.git 和 /mnt/reposbackup/git-data/repositories/myapp /myapp.foo.git
- 尝试重新启动服务器 - 结果相同
- 尝试 sudo gitlab-ctl reconfigure - 结果相同
- 尝试重启 runsv 服务:sudo systemctl restart gitlab-runsvdir - 结果相同
我还查看了数据库,“projects.repository_storage”的值似乎是正确的。即使将其更改为“默认”与“筒仓”(这是我的备用目录)似乎也不起作用。
我试图了解 gitlab 如何确定存储库的位置,因为检查 repo-path 似乎是失败的原因。
解决方案
迁移完成后运行sudo gitlab-rake cache:clear。
【问题讨论】:
-
讨厌回答我自己的问题,但我在尝试了一切之后才找到这篇文章:gitlab.com/gitlab-org/gitlab-ce/issues/31941。看来修复是运行
sudo gitlab-rake cache:clear。这可能应该记录在某个地方! -
谢谢你,救了我。
-
不幸的是,由于某种原因这对我不起作用
标签: gitlab gitlab-omnibus