2011-05-06 130 views
2

我有主要和開發分支。我在兩者中進行了更改並簽入。我從main到dev合併並簽入。現在我從dev合併到main。我有衝突。這怎麼可能?TFS合併衝突

回答

3

解決單向合併的衝突不一定適用於另一個方向的合併。在許多工作流程中,您基本上正在合併,以便儘可能保持兩個分支的相似性 - 例如,將開發分支更改爲生產分支,並可能將關鍵錯誤修復從生產分支移回開發分支。在這種工作流程中,當合並兩個分支時(通常在兩個分支中都需要關鍵的錯誤修正),您通常不希望發生分歧,因此不是很明顯,爲什麼兩次都必須解決合併衝突,但這是肯定的不是在分支機構工作時唯一的工作流程。

我曾經在一個Java項目上工作,該項目有一些實用程序庫,我們與一個在不同項目上工作的組共享一些實用程序庫。在某些情況下,我們的圖書館由於各種原因需要與他們分道揚so,因此我們選擇了他們的項目分支機構,兩組都對圖書館進行了獨特的更改。有時候發生了,我們會修正一個錯誤,有時候會發生,他們會添加一個新功能,所以我們經常會彼此來回合併。

您可以在這裏看到,從我們的分支合併他們的結果並不一定是從他們的分支合併到我們的結果。假設有一個文件,我們添加了一些新的方法,並可能修復了一些錯誤。假設他們已經添加了一些不同的方法。當他們將我們的更改合併到他們的分支中時,他們會遇到合併衝突,我們假設他們接受了錯誤修正,但沒有采用我們的新方法,因爲他們不需要它們。現在,當我們進行合併以將其更改引入分支時,我們仍然遇到合併衝突 - 這使我們可以將他們的方法帶入我們的文件。

如果TFS是作出關於合併從分支到成果的基礎上,從我們的支進他們的一些我們的假設,這將是不準確的。