[.net 面向對象程序設計進階] (24) 團隊開發利器(三)使用SVN多分支並行開發(下)


[.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 程序設計

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM