1. 程式人生 > >svn分支管理的使用與經驗

svn分支管理的使用與經驗

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

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

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測試分支,測試通過後,再合併到主幹。

分支合併的時機

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

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

參考:http://blog.csdn.net/mycwq/article/details/51793847

相關推薦

svn分支管理的使用經驗

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

svn分支開發主幹合並(branch & merge)

eat 技術分享 正是 修改 16px tsv nbsp ati 錯誤 下面我將step by step地演示如何一次完整的branching和merging,包括創建分支、分支開發、分支和主線同步,分支合並到主線的全過程,甚至包括如何在本地創建一個測試用的reposito

SVN版本管理大型程式碼上線方案(9)

二.搭建SVN伺服器 (1)安裝依賴包    yum -y install subversion   mkdir -p /application/svndata   mkdir -p /application/svnpasswd 編輯svn配置檔案 cp

專案(七)SVN版本管理大型程式碼上線方案

  SVN介紹 Svn(subversion)是近年來崛起的非常優秀的版本管理工具,與CVS管理工具一樣,SVN是一個跨平臺的開源的版本控制系統。Svn版本管理工具管理著隨時間改變的各種資料。這些資料放置在一箇中央資料檔案庫(repository)中,這個檔案庫很像一個普通的檔案伺

svn版本管理上線

1.1 SVN介紹 1.1.1 什麼是SVN(Subversion)? Svn(subversion)是近年來崛起的非常優秀的版本管理工具,與CVS管理工具一樣,SVN是一個跨平臺的開源的版本控制系統。Svn版本管理工具管理著隨時間改變的各種資料。這些資料放置在一箇中央資料檔案庫(repos

企業級SVN版本管理大型程式碼上線方案

一,SVN服務實戰應用指南   1.1 SVN介紹   1)Svn(subversion)是近年來崛起的非常優秀的版本管理工具,與CVS管理工具一樣,SVN是一個跨平臺的開源的版本控制系統。Svn版本管理工具管理著隨時間改變的各種資料。這些資料放置在一箇中央資料檔案庫(repository)中,這個檔案庫

SVN版本管理大型代碼上線

產品 listen warn admin 定義 無法 splay correct -h SVN版本管理與大型代碼上線 一、SVN簡介 SVN是近年來崛起的非常優秀的版本管理工具,是一個開源的版本控制系統,開發的代碼版本, 這些數據位置放置在一個中央資料檔案庫,很想一個普通

SVN分支管理

轉自http://blog.csdn.net/eggcalm/article/details/6606520 使用svn幾年了,一直對分支和合並敬而遠之,一來是因為分支的管理不該我操心,二來即使涉及到分支的管理,也不敢貿然使用合併功能,生怕合併出了問題對團隊造成不良影響,最主要的原因是,自己對分

SVN分支建立 分支和主幹的程式碼合併問題

最近專案中涉及到了SVN的建立分支,以及分支和主幹程式碼的合併。在此記錄一下主要的東西(恩,感覺這位博主的截圖好暖心,就忍不住轉一下了)~ 一、建立分支的意義: 在日常專案開發及版本迭代的過程中,經常會遇到這樣的場景:當前版本提交QA測試之後,一方面需要在主幹

SVN版本管理大型程式碼上線(9)

1,SVN服務實戰應用指南   1.1 SVN介紹   1.1.1 什麼是SVN(Subversion)? Svn(subversion)是近年來崛起的非常優秀的版本管理工具,與CVS管理工具一樣,SVN是一個跨平臺的開源的版本控制系統。Svn版本管理工具管理著

持續交付中的分支管理版本控制

現在,越來越多的專案使用Git作為版本控制的工具,通過Git來進行分支和Tag管理,但大多數情況這個過程都由手工完成,缺乏相應的規範,對於分支和版本號的控制也很隨意,出現這樣的情況往往是大家對軟體交付過程中的軟體版本控制不夠重視,“只要確保軟體是最新的版本即可”,甚至是專案管

Git 分支管理衝突解決

目錄: Git 分支管理:本地分支、遠端倉庫分支合併模式衝突解決:本地衝突、推送衝突Git 分支提供了並行工作的功能。 假設你準備同時學習 Git 和 SVN,你可以用兩個分支分別來學習,完成之後進行

分散式版本控制系統Git------分支管理合併(mergerebase)

零、需要使用到的命令:        git branch                                  檢視當前分支。        git branch <name

svn分支開發主幹合併(branch & merge)

1、本地Repository的建立 repository的建立很簡單,假設我要在D:\TortoiseSVN\TestRepository目錄中建立repository,只需右鍵TestRepository目錄,依次選擇"TortoiseSVN" -> "Cr

SVN程式碼管理分支合併(branch&merge)

首先需要安裝TortoiseSVN,我的版本Version 1.9 2015/09/27 18:54:04 (r26833) 1、Check out 在要check out 的路徑右鍵,選擇SVN C

SVN分支合並

tor 版本 修改 過程 全部 依次 說了 path vision 最近由於工作原因接觸了SVN的分支,現在做一下筆記,以便查閱。 關於SVN分支的重要性我就不多說了,網上有很多答案,可以自行查找。 我用的svn版本是TortoiseSVN 1.8.8 1、建立分支鼠標右鍵

git分支、標簽管理別名

編輯 發布 ... /dev/null date his 影響 遠程 unset 筆記內容:git分支、標簽管理與別名筆記日期:2018-01-15 22.9 分支管理 22.10 遠程分支管理 22.11 標簽管理 22.12 git別名 22.9 分支管理 分支管

Github操作git分支管理

想要 收獲 指導 上傳 遇到 了解 流程 通配 別人 通過今天學習的web新知識和復習Sublime Text的基礎知識,讓我收獲頗多,疑惑也多。尤其是在做用 git 和gitHub來管理自己的代碼的題目內容時候遇到了許多的疑問,首先在註冊用戶時都不太懂,在老師提示和

Git的學習使用(七)——Git 分支管理

Git 分支管理 幾乎每一種版本控制系統都以某種形式支援分支。使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。 有人把 Git 的分支模型稱為"必殺技特性",而正是因為它,將 Git 從版本控制系統家族裡區分出來。 建立分支命令: git branch 

SVN分支開發管理(SmartSVN)

使用分支的目的是,可以多個分支進行多版本並行開發,相互不干擾,而且任何時候都可以合併。同時,也保證了主幹的穩定性。 專案目錄格式,如: 一級目錄(專案名稱),如:Projectxxx 二級目錄 (一級目錄下的子目錄),如:Projectxxx—trunk、branch、tag 三級目