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 <[email protected]>
johndoe = John Doe <[email protected]>
alexdoe = Alex Doe <[email protected]>
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 [email protected]:test/development.git
git push --all origin
git push --tags origin
5.大佬们如果有问题,记得提出来,要分享
原文地址:http://blog.51cto.com/linux1991/2087273
时间: 2024-10-10 16:01:23