使用TortoiseSVN進行分支管理

SVN中的Branch/tag在一個功能選項中,在使用中很容易產生混淆。 
分支(Branch)管理和標記(Tag)管理,版本管理系統有兩個基本的功能。
分支用於在並行開發,這裏的並行是指和trunk(主分支)的並行。
而tag是用來做一個里程碑(milestone),不管是不是release,都是一個可用的版本。

那麼什麼時候用到tag管理?什麼時候用到Branch管理?
我舉兩個場景:
場景一,有客戶想對產品做定製,但是我們並不想修改原有的svn中trunk的代碼。
場景二,我們正在開發產品下階段的任務,但上階段的工作發現問題

以場景二爲例,項目某一階段開發完成後,這個時候要做一個tag,tag_mfcai_V1.01.00,
然後基於這個tag發佈一個新的版本,假設項目是web項目,那麼基於這個tag發佈一個war包。
然後trunk進入下階段繼續開發,但是很不幸發佈的版本被檢測出來了bug,有人會提議,把bug放到下階段的任務中去。假設下階段的任務纔剛開始,用戶可等不起.他們會認爲一個小的bug解決要這麼長時間,效率太低了.
那麼就需要基於tag_mfcai_V1.01.00做一個branch,branch_bugfix_V1.01.00,基於這個branch進行bugfix,
等到bugfix結束,做一個tag,tag名稱假設爲:tag_mfcai_V1.01.01,基於這個tag再發佈一個版本。
這樣,又沒有影響trunk(主分支)的開發。然後,根據需要決定branch_bugfix_V1.01.00是否併入trunk。

再介紹點打tag的知識。確認項目組成員的代碼都commit後。
1)右擊要打tag的目錄--->TortoiseSVN--->branch/tag
2)再彈出來的對話框中,要求輸入分支或標記的目標路徑
3)創建分支或標記的時候,你有三個選項版本庫中的最新版本,版本庫中的指定版本,工作副本。
  • 最新版本(HEAD revision in the repository)——直接從版本庫中最新創建,由於不需要從你的工作拷貝中傳輸數據,創建過程會很快。 

  • 版本庫中的指定版本(Specific revision in the repository)——同樣是從版本庫中創建,不同的是你可以指定一個版本號。如果你忘了版本號,可以通過顯示版本記錄來找到你想要的版本號(如下圖)。這種方式同樣不需要從你的工作拷貝中傳輸數據,創建過程也很快。 

  • 工作副本——這種方式會依據當前工作拷貝的版本狀況(無論是你做了本地的修改,或是將其中的某些文件更新到了一個歷史版本)來創建分支拷貝。這種創建方式會根據工作副本中每個文件的版本情況來決定是否要從工作拷貝向版本庫中傳輸數據。 

4)最後一個選項就是“切換工作副本至分支/標記”選項,如果選中這個選項,顧名思義你用來創建分支或標記的工作拷貝就會自動切換到指定創建的版本或標記的。當然你可以通過Switch(重新定位)和Checkout(檢出)功能來完成切換的工作。 

本文歡迎轉載,轉載請註明出處與作者
出處:http://blog.sina.com.cn/staratsky
作者:流星

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章