#安装svn2git。在所有系统上,如果您已经安装了Ruby和Git,您可以将它们安装为Ruby gem。
gem install svn2git
#准备一个作者文件,以便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>
#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
#gitlab上自己创建一下测试组,和项目目录,然后执行下面上传指令
git remote add origin git@git.testcompany.com:test/development.git
git push --all origin
git push --tags origin
原文地址:http://blog.51cto.com/linux1991/2087273