SVN分支管理


最近項目用上了svn分支管理,因為項目太過龐雜,版本迭代也過於頻繁,致使多個版本的代碼交雜在一起,難以維護,無法保證其中某個版本的穩定性。當然,我們也用過很土的辦法,代碼復制一份出來,但是,這個副本也需要加上新開發的功能。

所以,我們決定使用svn分支管理。當然,這有代價,svn版本管理對二進制文件不友好,可能文件分支合並時二進制文件會難以處理。(這里說的二進制文件,泛指所有非文本文件,比如說美術資源,策划文檔)

(文章內容轉自CSDN,感謝原創)

 

svn分支簡述

使用分支最主要的目的是,多個分支可以並行,相互不干擾,而且任何時候都可以合並。其次,容易保證主干的穩定性。

 

沒有分支的時候,你的svn可能是這樣的:

就一份代碼存在主干(trunk),當然也不會有主干這個說法。開發完1.0,繼續開發2.0,版本一個一個迭代。

 

有了分支后,你的svn可能就是這樣的了:

主干用來存放穩定的代碼,每個版本都會開一個分支,等版本完成后再合並到主干。版本一個一個迭代,但可以並行開發。

 

 

svn分支管理

接下來,簡單講解下 如何使用svn做分支管理。

 

第一步,建立主干分支目錄結構

 

第二步,創建分支

在主干目錄 trunk 右鍵,在svn菜單選擇 Branch/tag...

步驟①是分支地址,這里直接以 /branches/1

步驟②是取trunk版本,HEAD revision表示最新版本,其他可通過 show log選擇

執行 OK 后,到 branches 目錄 svn update 就可以看到最新的分支了。

 

第三步,合並分支到主干

分支就是開發目錄了,現在分支提交一個文件做測試。

然后,合並這個文件分支到主干。

現在到主干目錄,右鍵svn菜單選 Merge...

 

這個是將分支或主干的修改合並到當前工作目錄,繼續如下。

接下來點完成,如果沒沖突的話,分支文件就合到主干了。

 

但這里還要一個操作,就是在主干提交分支合過來的文件。

題外話,之所以要有這一步,除了對分支內容進一步修改,還可以同時合並多個分支。選擇權交給用戶。

另外,主干內容合到分支,也是使用 Merge 命令。

 

svn分支應用

根據項目的不同,實際上的分支架構也會不同。以我們項目為例,我們是做游戲的,項目過於龐雜,版本迭代非常頻繁。在版本1.1還沒完成時,我們可能就要開發2.0版本,這樣,版本1.1和版本2.0就要並行開發。而且,我們對穩定性有非常高的要求。

 

為此,我們設計了這樣的svn架構。

 

測試分支

為了保證主干穩定,我們加了測試分支(如 rel_1.1的測試分支為 rel1.1_test )。測試分支1.1是在分支1.1開發結束后開的,等待測試修復bug完成后,就會把測試分支1.1合入主干及分支1.1。合並完成后,這個測試分支將會關閉。

 

多分支並行

因為項目需求較多,版本迭代繁雜,所以在版本1.1還沒結束時,就開了版本2.0的分支。當分支2.0需要測試合並到主干時,就會從主干合並最新的文件到2.0測試分支,測試通過后,再合並到主干。

 

分支合並的時機

對我們而言,不同分支的最大區別是功能上線的時間點。我們根據上線周期划分功能,拆分到不同分支。因為開發需求多,迭代過於頻繁,所以靠后的分支對比之前的分支通常只是多了某些新功能。這樣,分支的出現,避免了未開發完成的功能影響了已開發完的功能,導致當前版本的不穩定。所以,合並分支的時機就是這個分支的功能要不要上線。

 

這樣,主干永遠是穩定的,也只有經過測試的內容,才會合入主干。同時,多個版本也可以並行。


免責聲明!

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



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