簡體   English   中英

SVN在兩個分支之間合並 - “路徑未找到”

[英]SVN merge between two branches - “path not found”

我有兩個分支(主干的孩子)需要合並到一個分支進行測試,但他們不能進入主干。 這兩個分支都與trunk @ HEAD保持同步。 所以我想從這里開始:

__________________trunk
  \___duck   \
              \___beaver

對此:

__________________________trunk
  \
   \______________platypus

我從最新版本的trunk創建了分支platypus,並嘗試將duck和beaver合並到這個trunk的新副本中:

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

但合並操作失敗了

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

如果我嘗試 - 將鴨子(或海狸)整合到樹干中,它可以正常工作。 我在這里錯過了什么?

我有同樣的錯誤,並能夠通過手動指定我想要合並的所有修訂號而不是讓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

我有一個類似的問題,重新整合了一個從另一個分支合並的分支(現在已經重新整合)。 像這樣:

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

似乎沒有可能重新整合鴨子,未發現的路徑錯誤抱怨r4 - 但我可以合並特定的修改(r5-r9)從鴨子回到主干。

我解決了這個問題如下:

  1. 將有問題的分支合並到主干中

  2. 從trunk創建了新的“統一”分支

  3. 將干線恢復到步驟1之前的狀態並提交回復

  4. 合並記錄僅從第3步到分支

  5. 通過將新的合並分支合並回主干來測試,但當然沒有提交它

最終結果是一個新分支,其中包含來自功能分支和主干的更改不變(但是在日志中有一些新條目)。

發生這種情況是因為SVN不知道要合並哪些修訂版,可能是因為合並信息丟失或損壞。

通過比較日志找到兩個分支之間的共同祖先(具有最高修訂版X的常見提交):

svn log duck > dlog.txt
svn log beaver > blog.txt

合並從該修訂版X到當前頭的所有更改:

svn switch duck    # if you are not already on it
svn merge -r X:HEAD beaver
# Merge conflicts
svn commit

注意:接受的答案建議使用--stop-on-copy來查找共同的祖先。 雖然這有時可能會找到正確的修訂版本(例如,分支duckbeavertrunk分支的地方,如果在創建它們之后在任何分支中有任何svn copy操作,它就不會給你一個共同的祖先。如果你知道這從未發生過,那么你可以使用--stop-on-copy

在進行合並時嘗試使用--ignore-ancestry選項。 可能是合並歷史記錄不完整(可能是由於烏龜或任何客戶端的事實),並且當您執行“正常”合並時,在分支上執行的操作會嘗試應用於工作副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM