1. 程式人生 > >SVN 版本管理演示:trunk(主線) branch(分支) tag(標記)

SVN 版本管理演示:trunk(主線) branch(分支) tag(標記)

名詞解釋:

--------------------------------
truck(主線):是用來做主方向開發的,新功能的開發應放在主線中,當模組開發完成後,需要修改,就用branch
branch(分支):分支開發和主線開發是可以同時進行的,也就是並行開發,分支通常用於修復bug時使用
tag(標記):用於標記某個可用的版本,可以標記已經上線釋出的版本,也可以標記正在測試的版本,通常是隻讀的

演示生活區系統的開發週期內的操作步驟(TortoiseSVN 1.7

----------------------------------

一,建立倉庫

二,將專案上傳到SVN上


桌面右鍵---> TortoiseSVN--->repo-browser--> https://10.162.245.166:8443/svn/GSRMS ---> Ok

--> 選中trunk資料夾右鍵---> Add folder---> 選中要上傳到SVN的專案的最外層目錄,輸入日誌

三,Check Out 

1. 在電腦任意位置建立一個存放專案程式碼的目錄,例如:D:\work\vsSVN\web\GSRMS
2. 將程式碼檢出到該位置

四:開發週期的管理過程

1,因為專案剛建立,這是在開發新功能,所以要在主線上開發

  注意是在trunk主線上,在目錄D:\work\vsSVN\web\GSRMS\trunk\GSRMS 上進行開發

2,開發一段時間後,經測試,上線到正式伺服器區,部署執行。

3,D:\work\vsSVN\web\GSRMS\tags 目錄下新建一個目錄:1.0,並將該目錄提交到SVN上,

然後右鍵該目錄 D:\work\vsSVN\web\GSRMS\trunk\GSRMS--->TortoiseSVN---->Branch/tag..-----> To Path :tags/1.0/GSRMS 並選中 Head revision in repository

---> Ok

此時D:\work\vsSVN\web\GSRMS\tags \1.0 目錄中沒有任何內容,需要更新一下該目錄做update操作。更新之後看到一個完整的專案原始碼儲存到該目錄中(該目錄下的原始碼可看做是trunk目錄下版本為1.0的一個副本)

4,使用者提出新功能,需要開發下一階段的新需求,主線繼續開發V2版本(開發中ing...)

5,某一天,使用者或測試人員反饋V1.0版本應用有重大bug,需要立即修復該bug並儘快上線, 此時程式設計師需要為 tags/1.0 下的GSRMS打一個分支branch

       操作過程如下:選中../tags/1.0/GSRMS 右鍵 TortoiseSVN---->Branch/tag-----> To Path :/branches/GSRMS---> Ok

         

此時看\branches目錄下仍然沒有任何內容,也需要update一下,更新之後發現該目錄下,也出現一個完整的專案程式碼(該程式碼可看做是tags/1.0/GSRMS的一個副本)

注意打分支和打標記都是使用Branch/tag...選單,不同的是To Path 的目錄不一樣

6,程式設計師(VS整合工具)除錯並修復bug,必須切換工作空間,開啟/branches/GSRMS 下的專案(注意開啟的必須是分支中的專案

 7. bug 修復好後,先提交修改的檔案,並進行上線,

    上線完成後再將 branches/GSRMS   打個tag 到 1.0.1目錄下(tags/1.0.1)(操作步驟同步驟3)

      tag操作完成後,可以看到tags/1.0.1/ GSRMS    和   branches/ GSRMS是完全一致的,將branches/GSRMS打一個新的tag是以便於下次在此基礎上再次修復bug,至此bug修復已經完成;

8. 接下來將branch和tr進unk行合併,操作步驟如下:
右鍵 branches/GSRMS------>TortoiseSVN----> Merge---> Merge a range of revisions----> Next--->URL to merge from : https://10.162.245.166::8443/svn/GSRMS/trunk/GSRMS ----> Next----> Merge

 

9,將trunk和branches進行合併 ,操作步驟如下,
右鍵/turnk/GSRMS-----> Merge-----> Merge a range of revisions-----> Next----->  URL to merge from :https://10.162.245.166::8443/svn/GSRMS/branches/GSRMS
步驟同上,只是  URL to merge from   的路徑不一樣。

 

10. 此時合併徹底結束,branches目錄下的原始碼如果不想要也可以刪掉,接著修改bug的這位程式設計師需要切換工作空間到主線上來,使用VS整合工具重新開啟trunk/GSRMS專案,接著開發尚未完成的新功能。SVN目錄如下:

 

備註:

1. 分支開發和主幹開發是兩個完全獨立的過程,兩者可以同時進行開發
2. 因分支和主幹開發是並行的,所以兩者可以任意的多次提交當前工程所修改的檔案