看完了上篇,我們對(duì)于多分支開發(fā)容易產(chǎn)生的問題應(yīng)該有了一些基本的了解吧。事實(shí)上,通常,并行開發(fā)的版本管理面臨以下幾個(gè)典型的難題
◆ 如何保證新版本開發(fā)與BugFix同時(shí)進(jìn)行?也就是要求修改過的BUG不能存在于新版本中題
◆ 如何保證兩個(gè)新版本并行開發(fā)?可能的情況是兩個(gè)完全不同的版本,或者一個(gè)是另外一個(gè)基礎(chǔ)題
◆ 如何保證版本的發(fā)布不受開發(fā)人員無意的代碼檢入影響?
不再拐彎抹角了,解決這三個(gè)難題的答案是使用分支(這里設(shè)計(jì)到一個(gè)著名的版本管理工具-ClearCase,分支正是其中的重要工具和概念)。
[OK,這里有個(gè)術(shù)語,就是分支。要理解分支必須同時(shí)理解其他的術(shù)語,比如說標(biāo)簽、視圖。本文不打算詳細(xì)的描述基礎(chǔ)的概念,相關(guān)的概念可以參考ClearCase(一個(gè)強(qiáng)大的版本管理工具)的文檔。]
上面是一顆版本樹,形象的記載了一個(gè)文件的版本變化情況。
◆其中1、2、3是不同的版本,
◆Main,Ver2.0就是分支。
◆Release1023和Ver2.0Begin則是標(biāo)簽,標(biāo)簽就像是打在代碼版本上的標(biāo)記。
◆視圖就是由分支類型、標(biāo)簽名稱、獲取規(guī)則動(dòng)態(tài)的決定的代碼橫截面。我可以建立Main分支的視圖,在這個(gè)視圖中我就看不到Ver2.0分支中的任何代碼修改,我也可以建立Ver2.0分支的視圖,在這個(gè)視圖中我們可以看到Ver2.0分支的最新代碼和未在Ver2.0分支中產(chǎn)生修改的Main分支中位于Ver2.0Begin標(biāo)簽處的代碼。開發(fā)人員總是習(xí)慣工作于一個(gè)視圖上。
OK,那看看解決第一個(gè)問題的辦法。
建立用于修改BUG的分支視圖,在此視圖上進(jìn)行修改將在BugFix上修改的代碼合并到主分支中,合并產(chǎn)生新的版本3,移動(dòng)Ver2.0Begin標(biāo)簽到版本3,Ver2.0分支自動(dòng)獲取到修復(fù)BUG以后的代碼,同時(shí),主分支上的BUG也得到了修正如果此時(shí)代碼已經(jīng)在Ver2.0上發(fā)生了變化,則需要執(zhí)行另外一個(gè)合并,將更改合并到Ver2.0中。但是幸運(yùn)的是,大多數(shù)時(shí)候不會(huì)在BugFix之前修改Ver2.0的代碼。
這樣做我們至少收獲了幾個(gè)附加的好處
◆ 我們獲得了從Main分支發(fā)布穩(wěn)定版本的能力
◆ 我們獲得了從Ver2.0分支發(fā)布最新預(yù)覽版的能力
◆ 開發(fā)人員的檢入檢出不影響版本發(fā)布
◆ 版本管理員可以對(duì)Main分支進(jìn)行鎖定等控制,防止其他人員越權(quán)或者意外的修改Main分支的代碼
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識(shí)與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評(píng)論 查看完整評(píng)論 | |