自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全程剖析:Subversion合并之簡(jiǎn)單介紹一

開(kāi)發(fā) 項(xiàng)目管理
本文介紹了Subversion合并問(wèn)題,和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

Subversion合并問(wèn)題你是否了解,這里就向大家簡(jiǎn)單介紹一下,歡迎大家能和我一起學(xué)習(xí)Subversion合并。

Subversion1.5支持合并跟蹤,本文將對(duì)什么是合并跟蹤,及其對(duì)你們組織具備的意義提供了高級(jí)的總體看法,我將會(huì)從許多基本的解釋開(kāi)始,如果你熟悉分支與合并,請(qǐng)掠過(guò)第1段。

1.什么是分支與合并?
開(kāi)發(fā)團(tuán)隊(duì)經(jīng)常會(huì)在多個(gè)并行線上開(kāi)發(fā),叫做”分支”,一個(gè)分支從拷貝開(kāi)發(fā)項(xiàng)目(或一個(gè)目錄)所有的文件開(kāi)始,然后開(kāi)始單獨(dú)的維護(hù)這個(gè)拷貝,文件開(kāi)始都是相同的,但經(jīng)過(guò)一段時(shí)間,它們將會(huì)不同,因?yàn)椴煌拈_(kāi)發(fā)者在不同分支做出了修改。

為什么分支?你或許在Subversion創(chuàng)建一個(gè)分支用來(lái)維護(hù)產(chǎn)品發(fā)布,同時(shí)為下一個(gè)版本工作。為什么?下一個(gè)版本會(huì)有新的特性,但是在維護(hù)分支你只接受bug修改。另一個(gè)用例是開(kāi)發(fā)復(fù)雜的新特性,而它會(huì)將使得開(kāi)發(fā)構(gòu)建不穩(wěn)定,通過(guò)在不同分支開(kāi)發(fā),你將其他開(kāi)發(fā)者從可能的構(gòu)建失敗中分離出去。Subversion自己的合并跟蹤特性在一個(gè)分支上開(kāi)發(fā)了差不多一年。

Graph1.兩個(gè)分支的主線開(kāi)發(fā)(trunk)
Subversion一直支持分支,但與其他系統(tǒng)不同,它不會(huì)真正的拷貝文件,那樣會(huì)快速加大版本庫(kù)的體積。相反,Subversion會(huì)創(chuàng)建一個(gè)到原來(lái)已有目錄的快速引用,只是記錄分支和trunk的文件修改,這樣的結(jié)果是創(chuàng)建分支非常迅速,版本庫(kù)幾乎不會(huì)增加大小。有些時(shí)候,代碼需要合并。例如,一個(gè)開(kāi)發(fā)者在維護(hù)分支上修訂了一個(gè)bug,你會(huì)希望將修改合并到主開(kāi)發(fā)線上,否則,你的下個(gè)發(fā)布還會(huì)有這個(gè)bug。另一個(gè)例子是在分支上開(kāi)發(fā)一個(gè)新特性。就像我們說(shuō)的,Subversion自己的合并跟蹤特性就是在分支上開(kāi)發(fā)的,在2007年2月,這個(gè)特性足夠穩(wěn)定,然后合并到了trunk。

Graph2.Subversion合并代碼
讓我們看一個(gè)簡(jiǎn)單的合并實(shí)例,這是我們的代碼:

  1. trunk的代碼(主碼基)  
  2. main()  
  3. {  
  4. printf(”hello,wordn”);  
  5. }  
  6.  
  7. 現(xiàn)在我們做一個(gè)分支,從用戶的角度會(huì)有兩份代碼:trunk的代碼(主碼基)分支代碼  
  8. main()  
  9. {  
  10. printf(”hello,wordn”);  
  11. }  
  12. main()  
  13. {  
  14. printf(”hello,wordn”);  
  15. }  
  16. “Word”實(shí)際上應(yīng)該為”World”,我們有一個(gè)bug,開(kāi)發(fā)者在分支上修改了它,文件現(xiàn)在已經(jīng)不同了。  
  17. main()  
  18. {  
  19. printf(”hello,wordn”);  
  20. }  
  21. main()  
  22. {  
  23. printf(”hello,worldn”);  
  24. }  
  25. 在某一時(shí)刻,bug修正合并到了trunk  
  26. >>svnmerge:Subversion將修改從分支合并到trunk。  
  27. main()  
  28. {  
  29. printf(”hello,worldn”);  
  30. }  
  31. main()  
  32. {  
  33. printf(”hello,worldn”);  

2.Subversion與合并
就像分支,Subversion一直支持合并,如果你要求它可以自動(dòng)完成許多工作。但是Subversion不會(huì)”記住”什么代碼從什么分支在什么時(shí)候合并,盡管分支與合并在Subversion中工作很好,但是合并跟蹤特性的添加解決了許多限制:重復(fù)合并,假設(shè)你有一個(gè)特性分支與主干同步,沒(méi)有合并跟蹤時(shí),你必須小心的(且手工的)記錄哪些修訂版本已經(jīng)合并,這會(huì)非常乏味,而且如果你忘了合并特定修改或是創(chuàng)建叫做”偽造的沖突”的東西,這意味著文件沒(méi)有正確的合并,結(jié)果修訂版本有錯(cuò)誤。
審計(jì)。當(dāng)你合并一個(gè)特性分支回trunk,trunk的歷史只記錄了合并的發(fā)生,但是不知道合并了什么,這樣就很難準(zhǔn)確找出合并了什么到trunk。

3.這對(duì)你意味著什么?
開(kāi)發(fā)團(tuán)隊(duì)多年里成功使用Subversion合并和分支,但是合并跟蹤提供了許多好處:合并跟蹤添加了審計(jì)/跟蹤能力(那些代碼合并了,何時(shí),何地?)。許多組織因?yàn)楣芾砟康男枰@個(gè)特性。合并跟蹤減少了錯(cuò)誤和管理費(fèi)用。團(tuán)隊(duì)會(huì)因?yàn)镾ubversion的合并跟蹤功能提高生產(chǎn)力。經(jīng)常合并很重要。兩個(gè)開(kāi)始相同的文件會(huì)隨著時(shí)間變得很不一樣,不同的越多,越難以合并。如果經(jīng)常合并,增量的區(qū)別會(huì)比較小,會(huì)易于合并。合并跟蹤可以使得易于經(jīng)常合并。許多選擇Subversion的公司采用限制分支的策略,他們不能從好的分支策略和并行開(kāi)發(fā)中得到好處,例如:他們選擇在主開(kāi)發(fā)線開(kāi)發(fā)一個(gè)風(fēng)險(xiǎn)很大的新特性,結(jié)果就是項(xiàng)目成員要處理經(jīng)常的構(gòu)建錯(cuò)誤。最終的好處:一些公司還沒(méi)有使用Subversion,而使用傳統(tǒng)的昂貴的工具,他們?cè)诘却喜⒏櫋1疚膶?duì)Subversion合并問(wèn)題的介紹還沒(méi)有結(jié)束,請(qǐng)大家繼續(xù)關(guān)注。
 

【編輯推薦】

  1. 三大主流Subversion客戶端初探
  2. 術(shù)語(yǔ)匯編:簡(jiǎn)單剖析Subversion Eclipse
  3. 在Linux下subversion和apache安裝配置
  4. 淺談Subversion密碼的遠(yuǎn)程修改工具
  5. Subversion教程:新手快速入門
責(zé)任編輯:佚名
相關(guān)推薦

2010-05-14 14:20:16

2010-05-13 15:38:19

Subversion

2010-05-13 09:01:05

Subversion下

2010-05-19 12:41:32

Subversion

2010-05-25 12:59:00

Subversion

2010-05-14 13:21:39

Subversion1

2010-05-19 14:05:59

Subversion+

2010-05-13 10:47:20

Collabnet S

2010-05-19 10:40:46

Subversion

2010-05-14 15:14:10

安裝Subversio

2010-05-18 14:06:22

SubVersion和

2010-05-18 09:43:58

Subversion安

2010-05-18 09:59:06

Subversion安

2010-05-14 17:24:55

Subversion編

2010-06-01 18:03:05

Rsync 使用

2010-05-19 13:12:42

Subversion服

2010-07-13 15:15:49

Perl二維數(shù)組

2010-05-18 13:02:30

2010-06-01 17:44:14

Rsync 使用

2010-06-01 11:13:40

Svn分支合并
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)