由于我的旧安装Gitlab太难升级(Thread on TKL支持论坛:http://www.turnkeylinux.org/forum/support/20120913/upgrading-gitlab),我已下载当前的TKL Gitlab发行版,并遵循Gitlabs标准升级路径,以便我现在拥有使用TKLBAM运行完全升级的Gitlab 6.1安装以及所有好东西。到目前为止一切都很好。
但是,事实证明我们旧版本的gitlab没有给回复的HTTP网址,所以这意味着我不能在Gitlab 6.1中使用“导入现有存储库”功能
我知道我可以简单地将旧的Git存储库从旧VM复制到新VM,但是如何在新VM上的Gitlab中显示这些存储库?
答案 0 :(得分:13)
我最近从gitolite迁移到gitlab,官方rake任务gitlab:import:repos
为我工作。我正在使用gitlab 6.1.0(82f3446)。这是我做的:
rsync
裸露的回购从gitolite到repositories/{group}/
。确保将{repository}
替换为gitolite repo的名称,并更改gitlab服务器的主机名。
rsync -rth --progress repositories/{repository}.git \
git@gitlab-server:/home/git/repositories/{group}/
此处,{group}
是您希望将存储库添加到的用户组的名称。如果您没有任何特定组,请选择root
作为组名。
修复权限 - 仅在rsync
用户不是git
时才需要:
sudo chown -R git:git repositories/{group}/
cd ~/gitlab
运行rake任务以导入所有新存储库:
bundle exec rake gitlab:import:repos RAILS_ENV=production
现在,如果您以管理员身份登录,您会发现新项目已添加。
有关更多信息,请参阅http://{your-gitlab-server}/help/raketasks
下的“将裸存储库导入GitLab项目实例”。
在您的情况下,您可以登录到旧的TKL系统并rsync所有裸回购到新实例,然后导入。
答案 1 :(得分:7)
一种选择是:
要创建一个名为newRepo的远程,请执行:git remote add newRepo gitlab.localhost.com:User/newRepo.git
(将末尾的url替换为repo的url)
答案 2 :(得分:5)
在阅读了ChrisA的答案之后,我几乎按照以下方式做了这件事,这让我对如何实际操作感到有点头疼。该示例将一个repo从github复制到gitlab,使源和目标更加清晰。
将旧的repo从github克隆到dev机器上(创建一个裸机器):
$ git clone --mirror git@github.com:me/myrepo.git
在新gitlab上创建一个空白回购。
在开发计算机上添加新的repo作为远程。
$ cd myrepo.git
$ git remote add newRepo git@gitlab.com:me/myrepo.git
将所有内容推回新的仓库。
$ git push --mirror newRepo
那就是它。
这样它就会将所有分支和标签复制到新目的地。
您现在可以从开发机器中删除克隆的裸仓库。
答案 3 :(得分:0)
如果你的Gitlab是> = 8.9,那么你可以使用export/import来迁移回购。
答案 4 :(得分:0)
自 GitLab 13.8(2021 年 1 月)以来,您现在拥有:
<块引用>一种更快、更简单的方式来迁移您的 GitLab 组。
组迁移是一项新功能,可让您将 GitLab 组从一个实例直接复制到另一个实例,而无需导出和导入任何文件。
在此版本中,我们仅迁移具有基本字段的 Group 对象。
我们计划跟进越来越多的字段和相关对象,直到以这种易于使用的方式迁移 Group 中的所有相关数据。
参见 Documentation 和 Epic。