[.net 物件導向程式設計進階] (24) 團隊開發利器(三)使用SVN多分支並行開發(下)

yubinfeng發表於2016-02-04

[.net 物件導向程式設計進階] (24) 團隊開發利器(三)使用SVN多分支並行開發(下)

本篇導讀:

接上篇繼續介紹SVN的高階功能,即使用分支並行開發。隨著需求的不斷變更,新功能的增加。特別是敏捷開發中,需要有一個穩定的分支隨時可以打包版本。那麼我們的專案不能把不穩定的程式碼放在主幹上。對於新的功能有些需要進行技術試驗,產生的不穩定程式碼不能影響專案的主幹。對於中型專案,人數在20人及以上的情況下,往往需要分組開發,在代理管理中,我們就可以很好的利用SVN的分支功能。分支開發相對穩定以後,可以很方便的合併到主幹上來。本篇最後會介紹一下如何在Visual Studio 2013/2015中使用SVN外掛進行程式碼管理。

 1.建立分支

      瞭解了分支的作用,假設我們有一個專案有很多功能,團隊配置20人,主要功能有:核心業務模組、TCP/IP通訊模組、射頻卡/IC卡通訊模組等。為了合理安排人員,我們將人員分為三個小組,第一小組負責主幹業務模組開發,當然這些模組需要兩個通訊模組的支援,另外兩個小組各負責一個分支開發,當分支相對完善的時候合併到主幹模組。

      基於上面的開發模式,我們利用SVN的分支功能,下面具體介紹如何建立主幹和兩個分支。

      先把我們主專案簽入到伺服器上,具體操作上篇中已經介紹了,簽入後,我們開啟伺服器端,看一下主專案結構,如下:

 

專案名稱“TestObject”,下面有三個模組,主模組“Main”,還有兩個模組“RfIc”、“TcpIp”

廢話不多說,我們建立兩個分支分別名為  TestObject_Branch_1  和  TestObject_Branch_2

具體操作如下,在客戶端機器主專案 目錄上右擊,點選 TortoiseSVN ,點選 “分支/標記”

在開啟的分支視窗中

輸入分支名稱,路徑為根目錄,在下面目標URL,可以看到 新建的分支的完整路徑,如上圖,點確定

提示覆制完成,我們第一個分支建立完成了,分支開發組的同學,需要使用分支路徑開啟專案。

同樣的方法,我們再建立第2個分支 TestObject_Branch_2,這時候專案資料夾中仍然只有主幹部分,我們想看到其他分支,可以在專案資料夾中,右擊,SVN更新

 可以看到 兩個分支都更新到 本地了

 2.分支合併到主幹

不同的專案組成員可以通過分支進行開發,版本相對穩定的時候,可以隨時合併到主幹,下面介紹一下如何合併到 主幹

在此之前,我們先對兩個分支及主幹進行改動,分支開發,肯定會有很多地方產生差異。

我們先把主幹專案的檔案 \TestObject\Mian\index.txt進行如下改動

 

然後,再在主幹下增加一個檔案 second.txt

 

SVN提交,主幹專案

然後,我們分別在兩個分支上改動 \TestObject_Branch_1\Mian\index.txt  和  \TestObject_Branch_2\Mian\index.txt 檔案 ,

 

並且在兩個分支分別建立兩個新檔案 ,如下

分別提交以後。主幹和兩個分支,不僅主頁檔案不同,並且分支內的檔案也不同

我們可以在服務端檢視三個專案的結構,如下:

經過一段時間開發後,如果兩個分支相對穩定,如何合併到主幹呢?

注意:合併前,先更新三個專案到相到 穩定 待合併版本

如上圖,在主幹專案右擊,TortoiseSVN,點 合併

按上圖選擇,點下一步

 

上面的URL是主幹URL,下面是分支URL,我們有兩個分支,重複一次合併,即可

兩個分支合併完成後,我們再看一下主幹目錄下的變化

 

開啟變更的檔案 index.txt

我們看到,這裡變更為最後一個合併的分支2的部分變更,剛才有合併分支2的時候,如果程式碼有衝突,會有一個提示,我選擇的是 解決衝突,那麼就替換掉了,如果選擇不解決,可以保留主幹上的更改。

具體要看衝突程式碼而定,即使我們手抖點錯了,也可以通過上篇文章中提到的恢復功能,進行版本回退。

3.主幹合併到分支

在專案推進過程中,如果分支程式碼需要主幹部分的變更,我們可以通過主幹合併到分支

我們先在主幹上建立一個新檔案fast.txt

提交主幹,更改。

用同樣的方式在分支上右擊,開啟 合併 視窗

注意:這次需要在要更新的分支上開啟合併

合併視窗如下

和上次不同的是,主幹 --》 分支,我們需要先選分支URL,下面選主幹URL

完成後,我們看一下 分支1的目錄

如上圖,我們看到 ,分支1上合併過來了主幹的檔案 fast.txt.同時也將主幹的差異檔案也複製過來了

用同樣的方法,可以將主幹也更新到 分支2,不再贅述。

至此,SVN的分支並行開發就介紹完了,是不是非常方便?

下面我們介紹一下如何在Visual Studio 2013/2015 中使用 SVN,其他版本的 VS也適用

4. Visual Studio 2013/2015 中 SVN 安裝

這裡接上篇文章,如果直接跳到這裡看的同學,可以看一下上篇,URL:http://www.cnblogs.com/yubinfeng/p/5177994.html

前提是我們已經安裝了VS 2015/2013 

我們找到上篇中下載的SVN for VS外掛安裝包,如下

 

雙擊安裝(VisualSvn暫時沒有中文版本,不過我們通過上面的介紹,應該已經很熟悉了,它的使用和前篇中介紹的SVN客戶端基本一樣,只不過,使用環境不同,一個是資源管理器,一個在VS中而已)

 

下一步,同意,下一步

這步,可以看到 ,VisualSvn,會檢測你係統中已經安裝的VS版本,能選的全選中,下一步,完成安裝

完成安裝後,我們開啟Visual Studio 2015(我以2015為例介紹,其他版本VS類似)

可以看到 ,Visual Studio 2015 中多了一個選單VisualSVN,如上圖,說明我們SVN for Vs外掛已經安裝成功

下面,我介紹一下如何在Visual Studio 2015中使用SVN 

5. Visual Studio 2013/2015 中使用 SVN 開發

 開啟VS 2015 在工具-選項中,設定一下你所要使用的原始碼管理器

開啟選項視窗

找到原始碼管理 -》 外掛選擇  ,在當前原始碼管理外掛中,選擇 “VisualSVN”,確定

接下來,我們要做的就是 開啟已有的SVN服務端的專案或將現有工程加入到SVN伺服器

如上圖,我們事先沒有VS工程,這裡我選擇 “Add Solution to Subversion...”將當前工程簽入到SVN伺服器

這裡選擇一下 將要簽入的工程路徑,如果當前開啟工程,則預設當前工程路徑

下一步後,如上圖,這裡有兩個選基, 一是新建一個版本庫,另一個是使用已有的版本庫。一般情況下,開發電腦和SVN伺服器並不是同一臺機器,我們選擇已有的版本庫,如果沒有建立,可以先在SVN伺服器上建立版本庫後,再在這裡選擇。點下一步

這裡輸入,我們已經在SVN伺服器上建立好的版本庫URL,下一步

提示會將現在的工程匯入到 SVN伺服器指定的版本庫,點 匯入 ,完成本地工程簽入

這時,我們可以看到 解決方案中的檔案前面多了一個 小圓點 表示當前專案已經受到版本控制

我們去SVN伺服器上看,DataBase版本庫,並沒有檔案,不要急,我們在VS資源管理器中,右擊工程,點 Update

 提示,工程檔案已簽入SVN伺服器

此時,第一個版本1已經正式更新到 SVN伺服器上了,我們去SVN伺服器上看看

沒有任何問題。

我們在VS中開啟一個檔案更改

可以看到 在資源管理器中,檔案 前面的綠色 點變成了黃色,表示此檔案被更改了。

關於狀態圖示,我們可以在VS的VisualSVN的選項中,開啟,來更改圖示樣式,這點和Tortoisesvn差不多,只不過,狀態只有三種

在VS用使用SVN和在WINDOWS中使用tortoisesvn客戶端基本差不多,我們在VS檔案管理器中,右擊

可以看到 ,選單中都是我們熟悉的。顯示差異,更新,提示,日誌,鎖定,合併,分支,恢復版本等等,這些我們在前篇 和本篇 中都一一介紹過了,這裡不再贅述了。。

至此,SVN的伺服器配置,客戶端使用,VS中的使用全部介紹完了。

哎馬,好累 ~~~吃個蘋果壓壓驚~

6. 本節要點

本節主要介紹了SVN的高階功能 利用分支並行開發,SVN在VS中的安裝及使用,SVN的介紹就在此終結了,他的確是一款輕量級的,功能強大的版本控制系統,使用人數不計其數。其實只學會使用並不難,重要的是要利用好,如果在使用過程中

不講究專案的管理方法,任何控制工具都是失控的。SVN也一樣,如何分支,何時合併,都需要對專案的業務有一定的理解。下面要開啟Git之旅了,希望大家支援一下。最後祝大家新年快樂,專案一帆風順。

==============================================================================================

返回目錄

<如果對你有幫助,記得點一下推薦哦,如有有不明白或錯誤之處,請多交流>

<對本系列文章閱讀有困難的朋友,請先看《.net 物件導向程式設計基礎》>

<轉載宣告:技術需要共享精神,歡迎轉載本部落格中的文章,但請註明版權及URL>

.NET 技術交流群:467189533 .NET 程式設計

==============================================================================================

相關文章