2013-07-03 48 views
1

我是一位學習如何使用源代碼管理軟件的開發人員。我已閱讀Subversion documentation。我理解合併的概念,但我的問題是:你多久合併一次?你多久合併一次?

例如,如果你有一個開發者的軀幹和兩個開發人員在不同的分支機構工作,然後做工作時他們:

1) Merge the trunk with branch 1 
2) Merge the trunk with branch 2 
3) Merge branch 1 with the trunk 
4) Merge branch 1 with branch 2 
5) Merge branch 2 with the trunk 
6) Merge branch 2 with branch 1 

在這個例子中,請假設這三個變化是隔離。你在每天結束時都融合了嗎? - 假設當然這些變化是穩定的,或者你剛剛在發佈日期合併?

在過去(當我還沒有使用源代碼管理)我已經發布和當。我認爲最好設定一個發佈日期,我(和其他開發人員)可以採用哪種發佈日期?

今天我已經準備好了許多關於合併和分支的文章,例如這一個:Good branching and merging tutorials for TortoiseSVN?。我還沒有找到我的具體問題的答案。

+0

您儘可能經常合併,每天的結束在您的案例中聽起來是一個不錯的選擇。合併的原因往往在於如果存在依賴關係/代碼衝突,他們更容易維護。 –

回答

2

不同的分支策略是可能的。但我建議不要將它們鏈接到任何日曆或時間事件(如每日或每週)。

對我來說,以下工作:

  1. ,當我開始一個要素/漏洞修復,我看到它超過一個承諾,我創建一個分支吧
  2. 實現固定的特徵錯誤
  3. 在年底合併從主幹(如果有的話)的所有測試
  4. 所有新變化分支
  5. 檢查重返分支到主幹

如果開發需要很長時間並且樹幹有變化,則在開發過程中合併樹幹 - >分支多次以避免偏離太多是有意義的。

有時候這樣的分支會活1-2個小時。有時1-2個月(但我不喜歡這樣的事情 - 通常意味着分解不充分)。

此外,我從來沒有遇到需要合併分支(不包括主幹),但這又取決於任務的良好分解。如果功能/錯誤修復已完成,則應該轉至主幹,如果不是,則不應使用其中間狀態。

+0

upvote for features branches。有關更長的解釋,請參閱https://www.atlassian.com/git/workflows#!workflow-feature-branch。他們使用另一個版本控制系統,但功能分支保留功能分支 - 並聽說過替代vcs'es不能傷害;) – mnagel

0

除了maxim1000的答案(+1爲)我在這裏的經歷:

我更喜歡一個大單合併做更小的合併,因爲你經常酒糟衝突解決。缺點是在進行大量小規模合併時,總投資時間可能會更長。

當我做合併取決於數量和質量的變化這是在分支機構完成。