iT邦幫忙

0

版本控管分支疑問

目前手上有一個Web Service專案
有一個 master 主要分支
該Web Service提供10方法供外部呼叫使用

後來因為客戶端需求不同
建立了 A和 B分支
分別 For A客戶和B客戶的需求

A分支和master有3個方法的部份程式寫法不同
B分支和master有5個方法的部份程式寫法不同

平常都是修改master再將共同修改的部份合併到A和B分支
而A和B的各自的修改則不合併為master

現在C客戶也提出不一樣的需求
目前有考慮新開 C 分支來For C 客戶就好
因為如果有共同的修改可以直接從master直接合併過來
但又覺得分支越開越多
是否會過於雜亂
因為後來會不會又有 D 或 E 客戶的出現不確定

請問像這樣的情況應該是繼續開分支就好
維持目前一客戶版本一分支的情況
還是應該將各個需求獨立出來建立獨立的版控

如果描述不清楚的地方敬請見諒
我會隨時上來補充
謝謝

pantc328 iT邦研究生 1 級 ‧ 2014-09-29 16:01:05 檢舉
我現在用Git在玩版本控管

比如
我有三家客戶
我會開
CustomerA,CustomerB,CustomerC
三個專案和三個 Git Repository

一支BizLibrary 共同的專案和Git Repository

這樣你的開發環境會有一個方案下面四個專案
檔案管理者會有4個專案目錄

CustomerA/B/C Library 去參考 BizLibrary
並將 參考的 BizLibrary 設定每次都拷貝
這樣 BizLibrary 有更新

CustomerA/B/C Release 時
會去拷貝最新的BizLibrary
dinochang iT邦新手 4 級 ‧ 2014-10-03 13:57:54 檢舉
了解,感謝您謝謝

2 個回答

0
pantc328
iT邦研究生 1 級 ‧ 2014-09-19 17:31:28
最佳解答

把專案分層
把客製化的產品用專案的方式分支出去

把共同的邏輯切在一個專案不分枝
客製化專案,用了某個時間點,把穩定共用的部分上提至共同的邏輯

由客製化的專案去參照共同邏輯專案

dinochang iT邦新手 4 級 ‧ 2014-09-21 09:44:59 檢舉

請問您的意思是

將共用的部份集中在Unity專案裡
建立Service專案來加入對Unity的參考
針對Service專案的部份針對各客戶來建立分支

但對於您說共同邏輯不分支的意思
是指建立的Unity專案是獨立於另一個版控或不建立版控嗎?
如果同一個版控在建立分支時不是就會一併復製一份到分支上嗎?

以上如果有理解錯誤的
再麻煩您指正
謝謝

0
Albert
iT邦高手 1 級 ‧ 2014-09-20 07:12:21

這個不是分支的用法
是設定規則的問題
規則設定
是同一套系統
上線時勾選不同企業規則

上線時在規則引擎寫不一樣的企業規則
可以參考我們的 groovy + mda 系統架構
如果每一個客戶想要不同畫面
如果每一個客戶想要不同運算
如果每一個客戶想要不同驗證規則
一定要企業規則引擎:: 可讓客戶去設定
一定有動態驗證引擎:: 可讓客戶去設定
請洽 技術轉移顧問 Albert Chen
![](<br />
http://ithelp.ithome.com.tw/upload/images/20140920/20140920070702541cb7163301a.png&lt;br />
)
![](<br />
http://ithelp.ithome.com.tw/upload/images/20140920/20140920070605541cb6dddc6eb.jpg&lt;br />
)

我要發表回答

立即登入回答