迁移SVN到Git
1.创建用户映射
检出svn上所有提交过代码的用户名
svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /'
显示
<author>chenghu</author>
然后将这些用户名复制下来
修改成以下形式,保存成user.txt
svn用户名 = git用户名 <git邮箱>
如
chenghu = 小虎 <chenghu@chenghu.me>
2.拉取SVN的commit纪录
使用git-svn来拉取svn提交的记录,转换成git
git svn clone https://SVNserver/serverpatch/trunk --authors-file=users.txt --no-metadata gitDir
当然,如果svn上面提交记录比较多的情况下,从第一次commit开始拉会比较慢,可以使用-r
参数来指定开始拉取的那次svn编号开始。
git svn clone -r255:HEAD svn_repository_url
3.添加Git远程仓库
git remote add origin http://gitserver/apps/myapp.git
4.推送代码到Git仓库
git push origin master
这样就完成了从svn到git的迁移
当然,一般刚迁移完,svn和git会并行一段时间,svn上提交的代码如何同步到git呢?
1.拉取svn上新的提交
git svn fetch
2.合并到master分支
拉取回来的代码处于一个单独的分支,可以使用 git branch -a
来查看,有一个git-svn
的分支。
git merge git-svn
3.推送代码
使用git log
查看是否已经有了svn上最新的提交记录,好了,可以将这些更新提交到git远程仓库了。
git push origin master
相关文章
Comments !