这里我们首先创建一个txt文档来映射所有的提交者, 格式如下:
loginname = Joe User <user@example.com>
项目可能开发了很久的时间,肯定避免不了人员的变动,我们怎么获取所有提交人的记录?因为后续一旦其中有一个记录缺失,会导致迁移失败,这里我们切换到项目地址下,运行如下命令:
svn log --xml | grep "^<author" | sort -u | \awk -F '<author>' '{print $2}' | awk -F '</author>' '{print $1}' > userinfo.txt
运行上述命令后, 会生成一个userinfo记录表的前半区域信息,这里我们需要手动补全后半段的信息。
标准的Svn目录迁移方式:
git svn clone https://xxxxx/xxxxxx/ --no-metadata --authors-file=userinfo.txt -s
由于公司的trunk下面还有好几个项目,还有软件安装包和文档等,所以要用下面这条命令来迁移:
git svn clone https://xxx/svn/xxx --no-metadata --no-minimize-url --authors-file=userinfo.txt --no-minimize-url xx
同步提交记录到gitlab的时间非常长,请耐心等待。
有了远程库地址,我们就可以将本地的工程push到远程地址,命令如下:
git remote add origin https://xxx.git
关联了地址后,最后一步就是将代码给push上去:
git push -u origin master
迁移完成。
参考:https://blog.csdn.net/xueshanhaizi/article/details/54929365
|