第 4 章 分支與合併

目錄

什麼是分支?
使用分支
建立分支
在分支上工作
分支背後的關鍵概念
在分支間複製修改
複製特定的修改
合併背後的關鍵概念
合併的最佳實踐
常見用例
合併分支到另一分支
取消修改
找回刪除的項目
常用分支模式
使用分支
標籤
建立簡單標籤
建立複雜標籤
維護分支
版本庫部署
資料的生命週期
供方分支
常規的供方分支管理過程
svn_load_dirs.pl
總結
 

君子務本

 
 --孔子

分支、標籤和合併是所有版本控制系統的共同概念,如果你並不熟悉這些概念,我們會在這一章裡很好的介紹,如果你很熟悉,非常希望你有興趣知道Subversion是怎樣實現這些概念的。

分支是版本控制的基礎組成部分,如果你允許Subversion來管理你的資料,這個特性將是你所必須依賴的,這一章假定你已經熟悉了Subversion的基本概念(第 1 章 基本概念)。

什麼是分支?

假設你的工作是維護本公司一個部門的手冊文件,一天,另一個部門問你要相同的手冊,但一些地方會有「區別」,因為他們有不同的需要。

這種情況下你會怎樣做?顯而易見的方法是:作一個版本的拷貝,然後分別維護兩個版本,只要任何一個部門告訴要做一些小修改,你必須選擇在對應的版本進行更改。

你也許希望在兩個版本同時作修改,舉個例子,你在第一個版本發現了一個拼寫錯誤,很顯然這個錯誤也會出現在第二個版本裡。兩份文件幾乎相同,畢竟,只有許多特定的微小區別。

這是分支的基本概念—正如它的名字,開發的一條線獨立於另一條線,如果回顧歷史,可以發現兩條線分享共同的歷史,一個分支總是從一個備份開始的,從那裡開始,發展自己獨有的歷史(見 圖 4.1 「分支與開發」)。

圖 4.1. 分支與開發

分支與開發

Subversion允許你並行的維護文件和目錄的分支,它允許你通過拷貝資料建立分支,記住,分支互相聯繫,它也幫助你從一個分支複製修改到另一個分支。最終,它可以讓你的工作副本反映到不同的分支上,所以你在日常工作可以「混合和比較」不同的開發線。