SVN迁移到git

前言

       目前同步开发有好几个项目,有的采用svn管理,有的采用git管理,一想也知道svn管理的项目都比较老,每次切换工程开发都要改变提交代码的方式。因此就打算把svn管理的项目迁移到git上,其实前面说的都不是重点,重点是svn服务器有时不稳定,所以才打算迁移到git上。

迁移过程

       说干就干,问题是之前都没有迁移过啊!这都难不倒我,有万能的google,随便搜索关键字svn迁移到git,随便出来都是一大堆文章,看起来确实没有几步,那就开干吧!

clone代码

       很多文章上来第一步就是:

git svn clone https://xxxxx/xxxxxx/trunk/android/project1 --no-metadata --authors-file=userinfo.txt  --trunk=trunkprojectname

       wtf? 这是啥!后面的参数都是些啥?不得已又翻下一遍找到了上面的参数的解释:

–no-metadata: 就是拉取的时候,不需要拉取svn的metadata信息,这样可以保证提交到git项目比较干净
–authors-file=userinfo.txt: 表示提交的作者映射,将svn中提交记录的作者都映射到新的名字
–trunk=trunkprojectname:表示svn上trunk分支,后面是trunk分支的名称

作者映射

       这里我们首先创建一个txt文档来映射所有的提交者, 格式如下:

 loginname = Joe User 

       如果有多个,那就多行,不需要符号换行:

loginname = Joe User @example.com>
loginname1 = Jone User @example.com>

       将所有的提交者都做一次映射。那我们接着clone代码吧!

       项目可能开发了很久的时间,肯定避免不了人员的变动,我们怎么获取所有提交人的记录?因为后续一旦其中有一个记录缺失,会导致迁移失败,这里我们切换到项目地址下,运行如下命令:

svn log --xml | grep "^ | sort -u | \awk -F '

你可能感兴趣的:(git,git,svn,迁移)