天天看點

版本控制的分支政策及初步實踐

  下面是對這幾種政策的摘錄:

  不穩定主幹政策

版本控制的分支政策及初步實踐

  使用用主幹作為新功能開發主線,分支用作釋出。

  被廣泛的應用于開源項目。

  bug修改需要在各個分支中合并。

  新代碼在主幹上開發,是以如果主幹不能達到穩定的标準,就不可以進行釋出。

  穩定主幹政策

版本控制的分支政策及初步實踐

  使用主幹作為穩定版的釋出。

  bug的修改和新功能的增加,全部在分支上進行。

  不同的修改或新功能開發以分支隔離。

  主幹上的每一次釋出都做一個标簽而不是分支。

  每次釋出的内容調整起來比較容易。

  缺點是分支合并所增加的成本。

  靈活釋出政策

版本控制的分支政策及初步實踐

  靈活開發模式的項目中廣泛采用,靈活開發的項目具有固定的釋出周期。

  為每個task建立分支。

  為每個釋出建立分支,每個周期内的task分支需要合并到釋出分支釋出。

  在完成釋出後,釋出分支的功能合并到主幹和尚在進行的任務分支中。

  一種穩定主幹政策的變體。

  團隊成員要求較高。

  團隊目前情況

  負責網際網路産品的開發,釋出更新較為頻繁。

  有固定的釋出周期,同時也存在比較多的hotfix。

  修改任務通常比較小,改動範圍通常不大,時間通常較短。

  不同的功能頁面有不同的小組負責,耦合度相對較低。

  團隊目前沒有采用分支政策,開發人員協商進行增量更新,出現錯誤的幾率較高。

  已使用微軟tfs做為版本控制工具,可以更充分的挖掘使用tfs的分支功能。

  我的初步實踐

  參考上述政策,結合目前團隊的現狀,我初步設計了下面的版本控制解決方案。

版本控制的分支政策及初步實踐

  此方案已穩定主幹政策為主結合了一些靈活釋出政策的思路,具體實施方案如下:

  1、主幹時刻處于穩定狀态,随時可以釋出。設專門人員對主幹代碼進行管理,普通開發人員隻讀。

  2、為開發任務建立開發分支。正常的可以以小組為機關建立分支,較大的任務可以建立專門的分支。

  3、在釋出日,從主幹複制一個測試分支,需要在本釋出日釋出的各開發分支向此測試分支合并。

  4、對測試分支代碼進行測試,出現bug在測試分支上更改,無誤後釋出。

  5、測試分支代碼釋出後,合并入主幹,并在主幹上進行标記。

  6、對緊急修複(hotfix)的情況,可以從主幹複制出測試分支,在測試分支上進行緊急修改,并在測試後釋出,釋出後同樣将代碼合并會主幹,做标記。

  7、 hotfix僅限于可以很快解決的小問題,如果更改時間過長,則需采用正常方法完成。

  8、如果在測試分支測試過程中需要hotfix工作,則在複制一個新的測試分支進行hotfix,測試後釋出。然後同時合并入原測試分支和主幹,并在主幹上做标記。此過程未在上圖中畫出。

  9、測試分支釋出後,開發分支可以删除;測試分支合并入主幹後,測試分支可以定期删除。

  方案的優缺點

  方案優點

  1、解決了沒有實施分支政策時,代碼不能經常簽入的問題。

  2、主幹代碼始終處于穩定的狀态随時可以釋出,降低了風險。

  3、可以基于一個完整的測試分支進行測試及釋出,而不是以口口相傳的方式增量更新。

  方案缺點

  1、建立分支、合并分支增加了工作量。考慮實際情況,以及版本控制工具的輔助,增加的工作量應該可以接受。

  2、如果某些開發分支工期跨越多個釋出周期,修改過于劇烈,合并分支時可能工作量較大。可以考慮分解任務,避免過大的任務出現。

  3、在同一時間最好隻有一個測試分支,是以建立測試分支的權限需要限制,除hotfix場景外應當避免。

====================================分割線================================

最新内容請見作者的github頁:http://qaseven.github.io/

繼續閱讀