成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

專家點評Subversion常用分支模式

開發 項目管理
本文向大家介紹一下Subversion常用分支模式,相比大家對Subversion分支已經有所了解了,那么對它的常用模式你知道,本文就會給你答案。

之前幾節我們說了Subversion的分支與合并問題,這里我們和大家討論一下Subversion常用分支模式,在這里拿出來和大家分享一下,希望大家有所感悟。

版本控制在軟件開發中廣泛使用,這里是團隊里程序員最常用的兩種分支/合并模式的介紹,如果你不是使用Subversion軟件開發,可隨意跳過本小節,如果你是***次使用版本控制的軟件開發者,請更加注意,以下模式被許多老兵當作***實踐,這個過程并不只是針對Subversion,在任何版本控制系統中都一樣,但是在這里使用Subversion術語會感覺更方便一點。

大多數軟件存在這樣一個生命周期:編碼、測試、發布,然后重復。這樣有兩個問題,***,開發者需要在質量保證小組測試假定穩定版本時繼續開發新特性,新工作在軟件測試時不可以中斷,第二,小組必須一直支持老的發布版本和軟件;如果一個bug在***的代碼中發現,它一定也存在已發布的版本中,客戶希望立刻得到錯誤修正而不必等到新版本發布。這是版本控制可以做的幫助,典型的過程如下:開發者提交所有的新特性到主干。每日的修改提交到/trunk:新特性,bug修正和其他。這個主干被拷貝到“發布”分支。當小組認為軟件已經做好發布的準備(如,版本1.0)然后/trunk會被拷貝到/branches/1.0。項目組繼續并行工作,一個小組開始對分支進行嚴酷的測試,同時另一個小組在/trunk繼續新的工作(如,準備2.0),如果一個bug在任何一個位置被發現,錯誤修正需要來回運送。然而這個過程有時候也會結束,例如分支已經為發布前的最終測試“停滯”了。

Subversion常用分支模式介紹中,分支已經作了標簽并且發布,當測試結束,/branches/1.0作為引用快照已經拷貝到/tags/1.0.0,這個標簽被打包發布給客戶。分支多次維護。當繼續在/trunk上為版本2.0工作,bug修正繼續從/trunk運送到/branches/1.0,如果積累了足夠的bug修正,管理部門決定發布1.0.1版本:拷貝/branches/1.0到/tags/1.0.1,標簽被打包發布。整個過程隨著軟件的成熟不斷重復:當2.0完成,一個新的2.0分支被創建,測試、打標簽和最終發布,經過許多年,版本庫結束了許多版本發布,進入了“維護”模式,許多標簽代表了最終的發布版本。

Subversion常用分支模式介紹中,一個特性分支是本章中那個重要例子中的分支,你正在那個分支上工作,而Sally還在/trunk繼續工作,這是一個臨時分支,用來作復雜的修改而不會干擾/trunk的穩定性,不象發布分支(也許要永遠支持),特性分支出生,使用了一段時間,合并到主干,然后最終被刪除掉,它們在有限的時間里有用。還有,關于是否創建特性分支的項目政策也變化廣泛,一些項目永遠不使用特性分支:大家都可以提交到/trunk,好處是系統的簡單—沒有人需要知道分支和合并,壞處是主干會經常不穩定或者不可用,另外一些項目使用分支達到極限:沒有修改曾經直接提交到主干,即使最細小的修改都要創建短暫的分支,然后小心的審核合并到主干,然后刪除分支,這樣系統保持主干一直穩定和可用,但是造成了巨大的負擔。

許多項目采用折中的方式,堅持每次編譯/trunk并進行回歸測試,只有需要多次不穩定提交時才需要一個特性分支,這個規則可以用這樣一個問題檢驗:如果開發者在好幾天里獨立工作,一次提交大量修改(這樣/trunk就不會不穩定。),是否會有太多的修改要來回顧?如果答案是“是”,這些修改應該在特性分支上進行,因為開發者增量的提交修改,你可以容易的回頭檢查。

最終,有一個問題就是怎樣保持一個特性分支“同步”于工作中的主干,在前面提到過,在一個分支上工作數周或幾個月是很有風險的,主干的修改也許會持續涌入,因為這一點,兩條線的開發會區別巨大,合并分支回到主干會成為一個噩夢。這種情況***通過有規律的將主干合并到分支來避免,制定這樣一個政策:每周將上周的修改合并到分支,注意這樣做時需要小心,需要手工記錄合并的過程,以避免重復的合并(在在一些時候,你已經準備好了將“同步的”特性分支合并回到主干,為此,開始做一次將主干***修改和分支的最終合并,這樣以后,除了你的分支修改的部分,***的分支和主干將會絕對一致,所以在這個特別的例子里,你會通過直接比較分支和主干來進行合并: 

  1. $cdtrunk-working-copy  
  2. $svnupdate  
  3. Atrevision1910.  
  4. $svnmergehttp://svn.example.com/repos/calc/trunk@1910\  
  5. http://svn.example.com/repos/calc/branches/mybranch@1910  
  6. Ureal.c  
  7. Uinteger.c  
  8. Anewdirectory  
  9. Anewdirectory/newfile…  

通過比較HEAD修訂版本的主干和HEAD修訂版本的分支,你確定了只在分支上的增量信息,兩條開發線都有了分枝的修改。可以用另一種Subversion常用分支模式考慮這種模式,你每周按時同步分支到主干,類似于在工作拷貝執行svnupdate的命令,最終的合并操作類似于在工作拷貝運行svncommit,畢竟,工作拷貝不就是一個非常淺的分支嗎?只是它一次只可以保存一個修改。發布分支特性分支“手工追蹤合并”一節描述過),你需要小心的撰寫合并的日志信息,精確的描述合并包括的范圍(在“合并一條分支到另一支”一節中描述過),這看起來像是脅迫,可是實際上是容易做到的。

 【編輯推薦】

  1. Subversion和TortoiseSVN如何在Windows下進行構建SVN版本控制
  2. 剖析來自Linux系統的svn命令
  3. 八大特性對比顯示SVN與CVS的優缺點
  4. 專家指導:Windows2003下如何進行Apache+SVN部署
  5. 搭建功能強大Linux SVN控制系統
責任編輯:佚名
相關推薦

2010-05-21 14:12:55

CentOS下Apac

2010-06-01 12:49:04

SVN分支模式

2010-05-27 17:01:22

啟動Subversio

2010-05-19 14:37:00

Subversion用

2010-05-20 18:30:08

Eclipse下使用S

2009-12-14 09:18:43

NetBeans 6.

2010-05-19 14:28:18

Subversion權

2011-01-20 08:47:26

RHEL 6

2010-05-20 16:01:36

SVN分支維護

2010-05-28 17:00:24

SVN分支與合并

2010-05-28 17:30:58

SVN分支

2010-03-23 11:40:11

軟考

2010-05-28 15:47:29

SVN分支

2010-05-28 15:57:20

SVN分支

2010-03-18 10:19:18

軟考

2020-07-09 08:00:25

Git分支模式

2010-06-01 12:36:04

SVN分支與合并

2010-06-01 19:47:29

SVN分支與合并

2012-08-20 10:28:01

云模型NIST云計算

2009-06-30 15:42:42

威脅模式網絡安全管理策略
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看免费观看在线91 | 毛片网在线观看 | 精品久久久久久久久久久院品网 | 精品一二区 | 伊人网站在线观看 | 久久不射电影网 | 亚洲电影专区 | 久久久久久久久久久久亚洲 | 日韩视频―中文字幕 | 亚洲日本成人 | 亚洲精品一区二区在线观看 | a毛片| 国产精品免费在线 | 欧美一区二区免费电影 | 午夜影视免费片在线观看 | 欧美韩一区二区三区 | 亚洲在线观看视频 | av福利网| 夜夜操操操 | 久久国| 日韩av美女电影 | 免费精品久久久久久中文字幕 | 91精品国产美女在线观看 | 一区二区在线免费观看 | 久久久久国产精品 | 超碰在线免费 | h视频在线免费 | 免费黄色在线观看 | 国产精品久久久久久久久久久新郎 | 91精品国产91久久久久青草 | 日本免费在线 | 激情六月丁香 | 日本视频在线播放 | 影视先锋av资源噜噜 | 91在线精品视频 | 成人欧美一区二区三区黑人孕妇 | 国产激情91久久精品导航 | 中文字幕高清免费日韩视频在线 | www国产亚洲精品 | 成人高清在线视频 | 日本午夜网 |