2012-10-03 76 views
15

我有兩個分支(樹幹的孩子),需要合併到一個分支進行測試,但他們不能進入主幹。兩個分支都與trunk @ HEAD保持同步。所以我想從這個去:兩個分支之間的SVN合併 - 「找不到路徑」

__________________trunk 
    \___duck \ 
       \___beaver 

這樣:

__________________________trunk 
    \ 
    \______________platypus 

我創建分支鴨嘴獸從主幹的最新版本,並正在試圖鴨和海狸融入這個新副本主幹:

svn copy ^/trunk ^/branches/platypus; 
svn switch ^/branches/platypus; 
svn merge --reintegrate ^/branches/duck; 
svn merge --reintegrate ^/branches/beaver; 

但合併OPS失敗

svn: '/blah/!svn/bc/12047/repo/branches/duck' path not found 

如果我嘗試 - 將鴨子(或海狸)重新裝入後備箱,它可以正常工作。我在這裏錯過了什麼?

+0

鴨,海狸,plutypus - 非常有趣 – Konstantin

回答

15

我有同樣的錯誤,並能夠通過手動指定我想合併而不是讓SVN決定的所有版本號解決。正如預期的那樣,這可以讓合併繼續並促使我發生合併衝突。

我使用TortoiseSVN挑選手工修改,但我相信使用SVN命令行它會是這樣的:

svn log --stop-on-copy https://svn.blah/svn/proj1/branches/xyz 

然後記下所有的版本號和合並他們都在一氣呵成,例如:

svn merge -c123,124,156,159 https://svn.blah/svn/proj1/branches/xyz 
-1

嘗試在合併時使用--ignore-ancestry選項。這可能是合併歷史不完整(可能是由於烏龜或任何客戶端的事實),並且在分支上完成的某些操作正在試圖在「正常」合併時應用於工作副本。

+1

謝謝,但這並不起作用。你不能同時使用--reintegrate和--ignore-ancestry,而沒有--reintegrate的合併只會產生大量衝突,因爲兩個分支都有相同的中繼 – Mathew

1

我有一個類似的問題,重新合併從另一個分支(本身現在重新集成)合併的分支。就像這樣:

-----------------------------r7------------------ 
    \      /   /ERROR !svn/bc/4/repo/branches/duck' path not found 
    r1----dinosaur--r5-------   /
        \---duck------------r9 

這似乎並不可能重返鴨,找不到路徑誤差約R4抱怨 - 但我會從鴨合併特定版本(R5-R9)回主幹。

0

我解決了這個如下:

  1. 合併有問題的分支到主幹

  2. 創建新的 「合併」,從主幹分支

  3. 已回覆幹線將其狀態在步驟1之前並承諾回覆

  4. 合併只記錄從步驟3到分支

  5. 通過合併新的合併分支回主幹測試,但沒有犯它當然

最終結果是一個包含從所述的變化的新的分支功能分支和主幹不變(但可惜在日誌中有一些新的條目)。