SVN及日志迁移到Gitlab

1、SVN准备迁移到Gitlab的工作

     1.1 将svn提交记录导出,如下图操作:svn log>log.txt  

SVN及日志迁移到Gitlab_第1张图片

   导出后将生成一个提交记录的log.txt的文件,文件格式如下所示:

SVN及日志迁移到Gitlab_第2张图片

1.2 然后创建svn2git.txt文件,作用是svn用户名与git用户名的一个映射文件。格式如下:

      示例:wei=wei

     可以将上面导出的log.txt文件中的用户名都对应到svn2git.txt中去。将svn2git.txt放到D盘根目录下。

1.3 找到你要存储git的目录打开Git BASH,如下我新建个目录用来存储切换到git后的代码

SVN及日志迁移到Gitlab_第3张图片

1.4 打开Git BASH后,使用命令:

 git svn clone "http://×××.×××.×××.×××/×××/×××/test-test-api" --authors-file="D:/svn2git.txt" --no-metadata test-test-api
标红处分别为svn地址,svn2git文件的目录, 自定义的工程名

如下图所示会报错。

Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item:'****' path not found

Do not be alarmed at the above message git-svn is just searching aggressively for old history.

1.5  可以添加版本号来解决上面的问题,如下命令:

 git svn clone -r268600:HEAD "http://×××.×××.×××.×××/×××/×××/test-test-api" --authors-file="D:/svn2git.txt" --no-metadata test-test-api  (这里版本号使用的是最新的记录,迁移后只有最新的一条提交记录)

其中-r版本号可以从log.txt中查看。

SVN及日志迁移到Gitlab_第4张图片

 

为了方便将svn2git.txt文件放到和Git BASH 同级目录,然后用如下命令:  (这里版本号使用的是最初始的记录开始) 使用下面的命令测试后,可以将所有的svn提交记录迁移到git上。

git svn clone "http://×××.×××.×××.×××/×××/×××/test-test-api" --authors-file=svn2git.txt --no-metadata  -r2800:HEAD test-test-api 

执行过程中会将所有的 r28** 记录打印出来,类似如下图:

SVN及日志迁移到Gitlab_第5张图片

在操作上述命令时,我这边报错提示: Author: **** not defined in svn2git.txt file

其实是存在的,但不知道为什么会报这个错。所以这里解决办法是:将svn2git.txt的第一行空出来,回车一下。然后重新执行上面的命令就正常了。如下图:

1.6 等待上面的命令执行完后,代码就down下来了,如下图所示:

SVN及日志迁移到Gitlab_第6张图片

1.7 在上面截图的目录下,Git BASH设置一下用户信息,如下:

git config --local user.name "你的gitlab用户名"

git config --local user.email "你的gitlab邮箱"

1.8 确定进入到工程目录下,使用命令 : git remote add origin http://***.***.***.**/test/test-test-api  将本地仓库和远程仓库建立连接,其中http地址是在Gitlab上新建的项目地址。还未push代码时Gitlab如下截图所示:

SVN及日志迁移到Gitlab_第7张图片

 

1.9 将本地数据推送到远程仓库上,命令:

git push -u origin master

8和9的命令操作完成后,如下所示:
SVN及日志迁移到Gitlab_第8张图片

1.10 刷新gitlab页面,会发现代码已经推送上来。如下截图:

SVN及日志迁移到Gitlab_第9张图片

 

 

 

 

你可能感兴趣的:(gitlab,git,svn,git,svn,java,gitlab,github)