Migration 将多个现有Gerrit存储库克隆到Gitlab

Migration 将多个现有Gerrit存储库克隆到Gitlab,migration,clone,gitlab,gerrit,repository,Migration,Clone,Gitlab,Gerrit,Repository,我们正在办公室从Gerrit Code Review迁移到GitLab。我知道如何将一个存储库从Gerrit克隆到GitLab。但在我们的office server中,大约有50个存储库。我曾尝试手动将存储库转移到GitLab的“存储库”目录,然后导入,但它只创建裸存储库。我想知道是否有一种方法可以一次性克隆所有存储库。请帮忙 但它只会创建简单的存储库 这就是GitLab作为Git托管服务所管理的:您可以在本地克隆的裸repo 您可以通过以下方式移动这些非裸回购: 仅将现有repo的.git移

我们正在办公室从Gerrit Code Review迁移到GitLab。我知道如何将一个存储库从Gerrit克隆到GitLab。但在我们的office server中,大约有50个存储库。我曾尝试手动将存储库转移到GitLab的“存储库”目录,然后导入,但它只创建裸存储库。我想知道是否有一种方法可以一次性克隆所有存储库。请帮忙

但它只会创建简单的存储库

这就是GitLab作为Git托管服务所管理的:您可以在本地克隆的裸repo

您可以通过以下方式移动这些非裸回购:

  • 仅将现有repo的
    .git
    移动到GitLab repo文件夹,其中每个
    .git
    在其所在的repo之后重命名:

    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,然后将该tar复制到新服务器

  • :

  • 尝试(但似乎有一个bug正在进行中):

    bundle exec rake gitlab:import:repos RAILS_ENV=production


虽然导入过程命令是正确的,但注释中提到:


如果我只是将存储库复制到
/home/git/repositories
,那么存储库将显示在GitLab中,没有源文件,也没有在Gerrit中执行的以前提交的记录

为了实现这一目标,我做了以下工作:

  • 在repositories目录中创建了一个新目录
  • 将Gerrit(位于
    /usr/local/gerrit2/git
    )的所有回购协议复制到新目录
  • 然后只需运行GitLab的导入过程,GitLab就创建了一个名为“
    Dev
    ”的组,并完美地导入了现有的存储库
我不需要将存储库转换为裸机


如果我只是将存储库复制到/home/git/repositories,那么存储库就会出现在GitLab中,没有源文件,也没有Gerrit中以前执行的提交记录。为了实现这一点,我在存储库目录中创建了一个新目录,从Gerrit复制了所有repo(位于/usr/local/gerrit2/git中)到新目录。-然后只需运行GitLab的导入过程,GitLab就创建了一个名为“Dev”的组,并完美地导入了现有的存储库。我不需要将存储库转换为裸机。谢谢anyways@redmoses听起来不错。我已经在答案中加入了你的评论,以提高可视性。
cd /tmp/repo1.git && git config --bool core.bare true