本身用VPS搭了個SVN私服,存了之前寫的小項目,由於這些代碼很久沒有動過了,萬一哪一天忘記了,代碼就丟失了,仍是在Bitbucket上存一下好了,反正Bitbucket上面私服免費且不限量。java
直接用SVN export會丟失歷史check in 記錄,查到svn to git migration教程,不是很複雜,記錄以下:git
參考英文教程:https://www.atlassian.com/git/tutorials/migrating-preparesvn
1.下載附助工具 svn-migration-scripts.jar 並檢查環境工具
java -jar ~/svn-migration-scripts.jar verifyblog
2.建立1G大小的大小寫敏感的文件系統教程
java -jar ~/svn-migration-scripts.jar create-disk-image 1 GitMigrationip
3.獲取用用戶信息數據並轉換utf-8
cd ~/GitMigrationrem
java -jar ~/svn-migration-scripts.jar authors <svn-repo> > authors.txtit
生成authors文件以下:
j.doe = j.doe <j.doe@mycompany.com>
m.smith = m.smith <m.smith@mycompany.com>
改爲用戶名和郵件形式
j.doe = John Doe <john.doe@atlassian.com>
m.smith = Mary Smith <mary.smith@atlassian.com>
示例以下:
java -jar ~/svn-migration-scripts.jar authors http://www.wuliang.org/svn > authors.txt
ericxu = ericxu <ericxu@mycompany.com>
ghw = ghw <ghw@mycompany.com>
wuliang = wuliang <wuliang@mycompany.com>
zhangyusu = zhangyusu <zhangyusu@mycompany.com>
zhujiaye = zhujiaye <zhujiaye@mycompany.com>
4.轉化標準SVN目錄結構項目(有 trunk,branches,tags標準目錄)
git svn clone --stdlayout --authors-file=authors.txt <svn-repo>/<project> <git-repo-name>
示例以下:
git svn clone --stdlayout --authors-file=authors.txt http://www.wuliang.org/svn/rayblog/ rayblog
說明:rayblog下有(trunk,branches,tags目錄)
5.轉化非標準SVN目錄結構項目
git svn clone --trunk=/trunk --branches=/branches --branches=/bugfixes --tags=/tags --authors-file=authors.txt <svn-repo>/<project> <git-repo-name>
示例以下:
git svn clone --trunk=/weather-client --authors-file=authors.txt http://www.wuliang.org/svn/ weather-client
說明:此項目沒有trunk,branches,tags目錄,項目代碼就在http://www.wuliang.org/svn/weather-client 下面。若是命令爲 [git svn clone --trunk=/weather-client --authors-file=authors.txt http://www.wuliang.org/svn/weather-client weather-client ] 因路徑不對,拿不到代碼也不會報錯(我第一次便遇到這個問題)
6.目錄清理/轉換(清理trunk,branches,tags,轉換成git的tag)
檢查模式,不會正真操做,會告知操做改變,加上(-forece)爲真正執行操做
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git --force
7.Git代碼上傳
cd rayblog
git remote add origin https://wulliam@bitbucket.org/wulliam/rayblog.git
git push -u origin --all