2009-09-24 83 views
7

我正在使用功能分支,並對我的功能分支提交了一些會影響其他開發人員的更改。我想把這些新的變化提交給主幹,以便沒有人留下來爭取修補休息時間;但是,我不想提交功能分支的其餘部分,因爲它尚未完全實用。SVN部分合並最佳實踐

我在r109處從樹幹分叉。我的分支機構對r145合併的主幹線進行了全部更改。我承諾我的「將影響其他開發者」更改到我的分支r152和r153。這裏

我的思維過程是使用svn我的工作副本切換到軀幹,然後做:

SVN合併的svn://項目/分支機構/ myBranch -r 146:153 ./project

SVN抱怨衝突,因爲主幹包含我更改的某個文件的原始版本,而我僅合併最新更改(我在先前提交給我的分支時對該文件進行了一些更改),並且還抱怨與另一位開發人員在r149中更改的文件發生衝突。由於我的分支只包含了從我的分支到r145的合併,因此我的分支沒有反映這種變化。

沒關係 - 衝突很容易解決,但我擔心的是,從現在開始,當我想將我的完整分支重新集成到主幹時,我會有麻煩。

或者,我可以對trunk進行必要的更改,然後將它們合併到我的分支中,但我不喜歡這種方法,因爲更改已在分支中完成。沒有意義做兩次。

有沒有人有一些功能分支部分合併到樹幹後經過完全重新整合的經驗?這裏最好的策略是什麼?

回答

4

如果分支上的更改順序無關緊要,則可以將這些更改合併回主幹,然後在功能準備好重新集成時合併剩下的更改。

如果可能的話,我會避免整個情況,等待更改直到分支準備好合併。

在大多數情況下,如果是立即在樹幹上進行的更改,我會建議在樹幹上進行更改,而不是樹枝,然後在樹幹中合併樹枝到樹枝通常這樣做。

+0

謝謝!我將它提交給我的分支後意識到,它應該是在主幹上完成的。否則,我會按照你的建議完成它。 – 2009-09-25 15:55:19

1

爲了確保您保留您或其他開發人員所做的所有您希望保留的修改以及您不需要的修改,我認爲您可能需要手動合併所有衝突的文件labview的LVMerge圖形合併工具。我已經與烏龜SVN一起使用它良好的成功 - 在這裏是如何LVMerge融入SVN,並用它來解決版本衝突的指令:

http://www.dmcinfo.com/Blog/articleType/ArticleView/articleId/136/Using-LVmerge-LabVIEW-Merge-Tool-with-TortoiseSVN.aspx

+1

該工具與烏龜合併工具有什麼不同? – SeanJA 2010-04-14 13:34:53