2012-05-08 119 views
0

在SVN中我有兩個分支,1.0和2.0。如果我在1.0中修復了一個問題,我該如何將修復合併到2.0中,反之亦然?SVN在兄弟分支之間合併

考慮以下情形:

  1. 我就在1.0分支的修復程序並創建一個新的文件A(REV X)。
  2. 我做了一個簡單的合併,只是修復從1.0到2.0(rev X + 1)
  3. 然後我修復了2.0分支並修改了A(rev Y)。
  4. 如果我將修復合併回1.0,我會遇到合併衝突!

我想我總是可以強制修復先在1.0分支上進行,或者我可以手動阻止1.0分支上的X + 1修訂版。這兩個都不理想,我想知道是否有更好的方法來處理兄弟分支。

+0

我們不經常這樣做,但每當發生這種情況時,我們都會使用手動塊(即'--record-only')。 –

回答

1

'最好'的方式將取決於你的分支的目的。

例如,如果分支1.0用於錯誤修復,並且分支2.0用於測試,那麼首先在1.0上執行所有修復,然後推到2.0,這是有意義的。

如果他們是不同的項目,你想挑選哪些功能在分支之間合併,那麼你可以使用中繼作爲集中點。

如果兩個分支都將具有相同的文件和更改,並且都不具有權威性,它會引發問題,您是否真的需要這兩個?

最終,如果兩個分支都涉及對相同文件進行更改,那麼您將會發生衝突,這只是由您的情況決定,以避免每天處理更麻煩。

+0

分支是同一產品的不同版本。我們必須繼續支持1.0版本的客戶併發布補丁,同時在2.0上進行新的開發。維護1.0分支的工程師經常會發現錯誤並修復它們,並在2.0分支上應用相同的錯誤。開發新的2.0分支的工程師發現了可能影響1.0版本的bug,並希望將這些改變也推回去。 – Pace

+0

經過更多討論後,我認爲將中繼線作爲中心點是理想的場景。 – Pace