我们正在从Gerrit Code Review迁移到我们办公室的GitLab。我知道如何从Gerrit克隆一个存储库到GitLab。但在我们的办公室服务器中,我们有大约50个左右的存储库。我已经尝试将存储库手动传输到GitLab的“存储库”目录然后导入,但它只创建了裸存储库。我想知道是否有办法一次性克隆所有存储库。请帮忙......
答案 0 :(得分:1)
但它只创建裸存储库
这就是GitLab管理的,作为Git Hosting服务:可以在本地克隆的裸存储库。
您可以通过以下方式移动这些非裸机:
仅将现有仓库的.git
移至GitLab repo文件夹,其中每个.git
在其所在的仓库后重命名:
repo1/.git => /home/git/repositories/repo1.git
repo2/.git => /home/git/repositories/repo2.git
repo2/.git => /home/git/repositories/repo3.git
如果你在讨论两个不同的服务器(希望两者都有相同的操作系统),我建议tar cpvf repo1.git.tar /tmp/repo1.git
:移入/tmp
并先重命名,然后重命名,然后将该tar复制到新服务器。
transform those repos into bare one:
cd /tmp/repo1.git && git config --bool core.bare true
尝试Import process of GitLab(但似乎有一个错误正在进行中:issue/pull 5005
捆绑exec rake gitlab:import:repos RAILS_ENV = production
虽然导入流程命令正确,但评论中提到OP redmoses:
如果我只是将存储库复制到
/home/git/repositories
,那么存储库将出现在GitLab中,没有源文件或者没有在Gerrit中完成先前提交的记录。为了完成这项工作,这就是我所做的:
- 在存储库目录中创建了一个新目录
- 将Gerrit的所有回购(位于
/usr/local/gerrit2/git
)复制到新目录。- 然后只是简单地运行GitLab的导入过程GitLab然后创建了一个名为“
Dev
”的组,并完美地导入了现有的存储库。我不需要将存储库转换为裸存。