码迷,mamicode.com
首页 > 其他好文 > 详细

centos上 svn迁移到gitlab

时间:2018-03-15 17:58:58      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:svn 迁移到gitlab

1. 安装svn2git工具(自己找一台服务器)
#安装svn2git。在所有系统上,如果您已经安装了Ruby和Git,您可以将它们安装为Ruby gem。

gem install svn2git

2. svn库中导出作者文件authors.txt

#准备一个作者文件,以便svn2git将SVN作者映射到Git作者。如果您选择不创建作者文件,则提交不会归因于正确的GitLab用户。有些用户可能不认为这是一个大问题,而另一些用户则希望确保他们完成这一步骤。如果您选择映射作者,则需要将存在于SVN存储库中的更改的每个作者映射。如果你不这样做,转换将失败,你将不得不相应地更新作者文件。以下命令将搜索存储库并输出作者列表。

#如果有svn的账号和密码自己添加一下 --user --password

#这一步会将你项目中的作者记录下来输出
svn log  https://svn.testcompany.com/svn/company/dev --quiet | grep -E "r[0-9]+ \| .+ \|" | cut -d‘|‘ -f2 | sed ‘s/ //g‘ | sort | uniq  >/tmp/authors.txt

#使用最后一条命令的输出来构建作者文件。创建一个名为的文件,authors.txt并为每行添加一个映射。
vim /tmp/authors.txt

janedoe = Jane Doe <janedoe@example.com>
johndoe = John Doe <johndoe@example.com>
alexdoe = Alex Doe <alexdoe@example.com>

3. 如果你的SVN仓库是标准格式(中继,分支,标签,而不是嵌套),转换很简单。有关非标准存储库,请参阅

#svn2git文档  https://github.com/nirvdrum/svn2git 。以下命令将检出存储库并在当前工作目录中执行转换。确保在运行该svn2git命令之前为每个存储库创建一个新目录。转换过程需要一些时间。

#创建一个目录测试拉取转换效果
mkdir /data/Repository/test1 -p

cd /data/Repository/test1

#老样子,如果需要用户和密码 加入参数 --user --password
svn2git https://svn.testcompany.com/svn/company/dev --authors /tmp/authors.txt

4. 创建一个新的GitLab项目,您最终将推送您的转换后的代码。从项目页面复制SSH或HTTP(S)存储库URL。将GitLab存储库添加为Git远程并推送所有更改。这将推动所有提交,分支和标签。

#gitlab上自己创建一下测试组,和项目目录,然后执行下面上传指令

git remote add origin git@git.testcompany.com:test/development.git
git push --all origin
git push --tags origin

5.大佬们如果有问题,记得提出来,要分享

centos上 svn迁移到gitlab

标签:svn 迁移到gitlab

原文地址:http://blog.51cto.com/linux1991/2087273

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!