1. 程式人生 > >SVN如何遷移到Git?

SVN如何遷移到Git?

操作 軟件開發 每次 文件添加 擔心 commit com gem pull

最近在使用華為軟件開發雲進行開發項目管理,目前華為軟件開發雲支持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?