svn迁移到git

作者 happyWang 日期 2015-06-12 Views
svn迁移到git

本文参考自:Git-与其他系统-迁移到-Git。 也建议阅读之前,先看看此文章,本文主要是对里面方法的一个补充和完善,保证可用性

第一步:把之前svn的提交者的信息映射为git需要的

在本地的svn目录,执行以下命令: svn log ^/ --xml | grep "^<author" | sort -u | perl -pe 's/<author>(.*?)</author>/$1 = /' > users.txt

显而易见,本方法要求主机上安装了grep,sort 和 perl.

最后得到的user.txt 是所有svn提交者的name。

在对应等号后面加上Email地址。 最终变成如下格式:

schacon = Scott Chacon selse = Someo Nelse

第二步:使用svn2git来导入

在一个新的打算放置导入成功之后的git项目的目录(最后也把上一步的users.txt拷贝到此处)

前往github上面的svn2git项目,安装这个工具,能比较方便的进行svn到git的导入

执行以下命令: svn2git svn://yourdomain.com/your/path/to/svn --username xingwang --verbose --authors users.txt

解释一下几个参数:

--username:

设定你在svn里面的用户名,方便执行svn co

--verbose:

debug模式,能够了解svn2git执行了哪些命令,方便出问题的时候调试

--authors:

用来设定提交者信息,也就是上一步生成的users.txt