SVN如何遷移到Git?
最近在使用華為軟件開發雲進行開發項目管理,目前華為軟件開發雲支持500M的免費項目空間,而且還可以在線編譯和構建,不用擔心開發環境和生產環境的不同,很好的體現了DevOps的開發理念.
之前一直是用svn做代碼管理,而華為軟件開發雲是使用目前國外比較流行的Git進行代碼版本控制.在網上查詢了遷移方式,發現Git本身有命令可以直接克隆SVN的代碼庫,而且遷移後能保持原SVN的提交記錄.以下是總結的SVN代碼庫向華為軟件開發雲遷移的過程.
主要步驟
1.通過git svn clone命令將SVN代碼庫克隆至本地
2.華為開發雲創建代碼倉庫,獲取Git倉庫地址
3.本地新建test分支,提交後合並至master分支.開發雲代碼庫中根據引導完成代碼合並. (新建分支合並的原因後面會講.)
準備條件
1.準備要遷移的svn代碼庫地址;本地安裝Git
2.登錄華為軟件開發雲(https://www.hwclouds.com/devcloud/),並已創建好項目.
完整遷移流程
1.通過git svn clone命令將SVN代碼庫克隆至本地
$ git svn clonehttps://SVN服務器地址/ibeisi.iPMSystem/ --no-metadata --trunk=trunk
#查看SVN提交記錄
$ cd ibeisi.iPMSystem/
$ git log
2.華為軟件開發雲創建代碼倉庫,獲取Git倉庫地址
代碼倉庫創建好之後,需根據在線幫助,添加SSH秘鑰,步驟很詳細,此處就不作贅述.
SSH秘鑰主要是本地與華為軟件開發雲代碼庫的一個管理,無需每次通過用戶名和密碼驗證
打開代碼倉庫,拷貝代碼倉庫地址
3.根據步驟2中獲取到的代碼倉庫地址,本地添加遠程倉庫地址
$ git remote add origin
[email protected]:3bf9c1ed148142d880d759e80100b923/iPMSystem.git
#拉取遠程分支
$ git pull
可以看到代碼倉庫中默認已建好主分支,如果無需保留SVN原提交記錄,可以直接將代碼通過master分支進行提交(commit)和推送(push);但我想保留原提交記錄,所以下面以新建分支合並到master的方式進行代碼上傳。
4.本地新建分支test,並發起與master分支合並請求
$ git branch test
#checkout命令會讓當前切換到test分支,及後續操作都只影響test分支
$ git checkout test
#新建空文件,原因是若沒有更改git不會進行push操作
$ vi test.txt
#空文件添加至分支中
$ git add .
#git的commit命令只是在本地提交,並不會上傳至代碼庫.
$ git commit -m "上傳代碼新建緩存分支"
#通過以下push命令可以發起test與master分支合並請求.
$ git push--set-upstream origin test
5.刷新代碼庫頁面(或重新打開代碼庫),可以看到合並請求的處理指引,按照指引操作即可完成合並.
可以看到原svn代碼庫的提交記錄都被完整保存了下來.
至此, svn代碼庫可以說完整地遷移到了華為軟件開發雲的CodeHub中。
SVN如何遷移到Git?