2012-12-11 82 views
2

假設我們有一個包含三個分支的大型TFS 2010項目:MAIN,TST和PRD。TFS中每個促銷權衡的分支

策略是:每當Sprint結束時MAIN被複制/合併到TST中。只要TST被認爲是穩定的,它就被複制/合併到PRD中。每當TST或PRD有修復,他們就會合並回MAIN,或MAIN和TST。 (不要問我爲什麼,我無法控制這一點,我特別不喜歡它。)

在每一步推進,按照我的理解,一個可以:

  1. 刪除目標分支和分支 - 這意味着不能立即訪問該分支的歷史記錄(它總是可以恢復的,對吧?);
  2. 合併並解決接受他們 - 這需要放棄可能尚未從目標合併回原點的更改。

對於合併,重要的是有祖先信息。與1我希望祖先信息被保留。 2.我不確定。

於是,兩個問題:

  1. 那兩個可能的/理想的方式去促進部門之間的軟件嗎?
  2. 我哪些情況是祖先信息沒有保留?

可能與大型存儲庫相關的額外折衷的額外點。

回答

2

1.這兩個可能/合意的方式去促進分支機構之間的軟件?

如果MAIN有一個子分支TST,它有一個子分支PRD,然後不訴諸無基礎合併,這些是唯一可能促進分支之間更改的合併。

如果這是一個理想的分支策略,取決於很多因素,比如有多少個並行版本和團隊規模。一個很好的參考指南就是TFS流浪者的分支指導http://vsarbranchingguide.codeplex.com/你似乎使用的版本是基本雙分支計劃的一個變體(你稱之爲main,他們稱爲dev,你的生產分支不是獨特的標籤)。如果只有一個版本處於生產階段並且版本應始終包含所做的一切,則此分支策略效果最佳。

2.在哪些情況下,祖先信息沒有保留?

如果文件被複制或分支被銷燬。但是,如果您需要一直刪除和/或重新創建分支,並且/或者需要連續使用acceptTheirs,那麼通常會顯示它;分支策略不充分,TFS培訓不足,或測試和修補策略問題(在生產和開發過程中發現的錯誤同時發現並修復,導致合併衝突)。

+0

升級步驟應該是一個常規合併,它不應該需要acceptTheirs選項。如果在將迭代n合併到PRD時發生衝突,只要沒有進行復制,刪除或銷燬操作,就應該有衝突文件與n-1合併相關的祖先信息。正確? – vlfig