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