2015-03-30 266 views
1

我目前正在研究兩個svn分支,一個叫做A,另一個叫做B.分支A大部分都已經完成,幾乎可以合併到基本分支中。 B分支是新的,因爲我添加了一些有用的基礎結構,所以我希望從分支A到B進行一些工作。我嘗試了A到B的簡單合併,似乎工作(svn merge ^/branches/A .)。但是,在稍後的階段,當A被合併回基本分支時,我嘗試將基本分支合併到B中,並且因爲文件被再次添加而導致大量樹衝突。 我應該如何做前面的合併以避免這個問題?svn:如何將更改從一個功能分支複製到另一個

. A created . A merged (all is well) 
-------------------------------> Base Branch 
|   | |        
-----------|---- Branch A 
      |     
      -------------------> Branch B 
      ^^   ^
    B created | |    | merged base into B, explosions occur 
       | 
       | merged A into B (svn merge ^/branches/A .) 

回答

2

您需要svn merge --record-only修訂這是一個合併成基礎的結果,這是一個令人困惑的svn。然後再次嘗試原始合併。而不是做A→base,最好是像base-> a-> base這樣做,在這種情況下,合併衝突在A上解決,而不是在base上,你可以將結果合併到B中而沒有問題。

+0

由於svn試圖添加兩次文件而導致的並不是衝突,而是因爲樹衝突(沒有衝突將基礎合併到A或基底回到基礎中)。現實生活中的情況可能稍微複雜一些。但是,使用'svn log',我能夠追蹤到原來的合併版本,並且使用'svn merge --record-only branch @ rev .'我能夠告訴svn不要再重複所有的更改。謝謝! – AlexMA 2015-03-31 21:02:09

+0

我仍然試圖圍繞僅記錄和SVN設計的目的來包裝我的頭。它幾乎感覺像是一個奇怪的滋擾帶頭任務,彌補了一些設計缺陷。我們的消息來源與這些唱片混雜在一起,以至於掩蓋了真正的變化。 – jxramos 2017-02-24 19:35:19

相關問題