MoveSVNToGit

迁移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

相关文章

坑死人不偿命,svn 迁移到 git

GIT版本控制 — GIT与SVN的相互转换 (三)

移动git管理的svn版本库的路径

SVN迁移到Git的过程(+ 一些技巧)

SVN+GIT=鱼与熊掌兼得

git svn实战

svn 迁移到git下全过程

Comments !

blogroll

social