[.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>
==============================================================================================