將代碼從本身搭的SVN私服轉到Bitbucket私服

本身用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

相關文章
相關標籤/搜索