1、首先导出svn项目为dump文件
导出命令:首先锁定当前repos,然后导出到dumpfile文件
svnlook youngest myrepos
svnadmin dump myrepos > dumpfile
上面是从根节点导出(导出的文件可能非常大,我的dumpfile就有40G),可以指定节点导出。
svnadmin dump myrepos -r 0:1000 > dumpfile1
svnadmin dump myrepos -r 1001:2000 --incremental > dumpfile2
svnadmin dump myrepos -r 2001:3000 --incremental > dumpfile3
2、利用上面的dumpfile,用svn导入dumpfile 得到svn的仓库
svnadmin create newrepos
svnadmin load newrepos < dumpfile
3、最后利用gitsvn 命令,克隆svn项目即可
git svn clone file:///tmp/test-svn -T trunk -b branches -t tags
注意:项目过大的话,可以将后面的“ -b branches -t tags ” 删除,只保留trunk分支。
备注:如果git svn clone file:/// xxxx 报错的话,可以尝试使用 git svn clone svn://localhost 地址
但是前提是需要打开svnserve 服务:(光标会闪烁,不要关闭命令窗口,关闭会推出server服务)
可以参考官方文件:
http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate