centos上 svn迁移到gitlab

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos上 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 <[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.大佬们如果有问题,记得提出来,要分享

以上是关于centos上 svn迁移到gitlab的主要内容,如果未能解决你的问题,请参考以下文章

svn代码迁移到gitlab

SVN迁移Gitlab步骤

SVN迁移到gitlab的步骤和问题

SVN迁移到gitlab

SVN-GitLab数据迁移

SVN迁移到GitLab