准备工作:安装git-svn工具(linux:yum install git-svn)
1、克隆svn项目代码到当前目录
svn checkout http://192.168.10.65/xxx ./ --username yyy --password
cd xxx
2、查看svn提交记录的作者
svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /'
输出如下:
<author>peijianbo</author>
<author>wangping</author>
3、当前目录下手动创建users.txt文件并编辑内容如下,将svn上的提交作者映射到git
peijianbo = peijianbo <peijianbo@163.com>
wangping = wangping <wangping@163.com>
这一步可能会有坑,有些教程直接将第二步结果重定向到users.txt文件(命令:svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /' > users.txt),修改文件做好映射关系后,再继续执行第四步时报错(Author: xxx not defined in users.txt file),原因应该是文件编码的问题。后来尝试手动创建users.txt才成功。
4、在当前svn项目目录下创建xxx-git项目,并指定authors-file
git svn clone http://192.168.10.65/xxx --no-metadata --authors-file=users.txt xxx-git
参数有很多可选项,根据需求可参考git文档自行选择,如保留分支,tag。
5、将xxx-git项目推送到远程仓库
cd xxx-git
git remote add origin http://192.168.10.66/xxx.git
git push origin master:master