Bjø*_*ten 7 linux migration git repository gitlab
由于我的旧安装Gitlab太难升级(Thread on TKL支持论坛:http://www.turnkeylinux.org/forum/support/20120913/upgrading-gitlab),我已经下载了当前的TKL Gitlab发行版,并且遵循Gitlabs标准升级路径,这样我现在可以使用TKLBAM运行完全升级的Gitlab 6.1安装以及所有好东西.到现在为止还挺好.
但是,事实证明我们旧版本的gitlab没有提供HTTP url到repos,所以这意味着我不能在Gitlab 6.1中使用"导入现有存储库"功能
我知道我可以简单地将旧的Git存储库从旧VM复制到新VM,但是如何在新VM上的Gitlab中显示这些存储库?
小智 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}/
Run Code Online (Sandbox Code Playgroud)
此处{group}是要将存储库添加到的用户组的名称.如果您没有任何特定组,请选择root组名称.
修复权限 - 仅在rsync用户不需要时才需要git:
sudo chown -R git:git repositories/{group}/
Run Code Online (Sandbox Code Playgroud)cd ~/gitlab
运行rake任务以导入所有新存储库:
bundle exec rake gitlab:import:repos RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)现在,如果您以管理员身份登录,您会发现新项目已添加.
有关更多信息,请参阅下面的"将裸存储库导入GitLab项目实例" http://{your-gitlab-server}/help/raketasks.
在您的情况下,您可以登录到旧的TKL系统并rsync所有裸回购到新实例,然后导入.
小智 7
一种选择是:
要创建一个名为newRepo的远程,请执行:( git remote add newRepo gitlab.localhost.com:User/newRepo.git将末尾的url替换为repo的url)
在阅读了ChrisA的答案之后,我几乎按照以下方式做了这件事,这让我有点头疼如何实际做到这一点.该示例将一个repo从github复制到gitlab,使源和目标更加清晰.
将旧的repo从github克隆到dev机器上(创建一个裸的repo):
$ git clone --mirror git@github.com:me/myrepo.git
Run Code Online (Sandbox Code Playgroud)在新的gitlab上创建一个空白仓库.
在dev计算机上添加新的repo作为远程.
$ cd myrepo.git
$ git remote add newRepo git@gitlab.com:me/myrepo.git
Run Code Online (Sandbox Code Playgroud)将所有内容推回新的仓库.
$ git push --mirror newRepo
Run Code Online (Sandbox Code Playgroud)而已.
这样,它将所有分支和标记复制到新目标.
您现在可以从开发机器中删除克隆的裸仓库.