[英]Tortoise SVN merge two branches
我正在嘗試將兩個分支與烏龜 SVN 合並。 兩個分支自從分開后都發生了變化。 如果我合並它們,則只有其中一個的更改會獲得,而另一個的更改將被覆蓋。 但我想要每個文件的最新更改(我們沒有在同一個文件中工作)。
我嘗試了“合並兩個不同的樹”選項,並在“From:”和“To:”中輸入了兩個分支。 我對兩者都進行了頭部修訂。 我將其他所有內容保留為默認值(合並深度:工作副本,比較空格,其他所有內容均未選中)
在From URL
選項中,您應該指定要合並到的分支。
例如,假設有 2 個分支,分支A
和分支B
,並且您想將分支B
合並到分支A
。
Merge
選項,然后選擇Merge two different trees
選項。From URL
,請提及分支A
的To URL
,在To URL
,請提及分支B
URL。 這應該將分支B
合並到分支A
而不會丟失任何文件。
參考:在此處找到此聲明
在 Subversion 中的合並總是在本地完成。 您要合並到的分支應該使用干凈的檢出方式檢出。 也就是說,它應該是最新的,沒有本地更改。 然后將另一個分支合並到其中並提交更改。
合並不是特定分支的副本。 合並通常是一種三向操作。 您有要合並到的分支(稱為yours )、要合並的分支(稱為theirs )和最后一個共同祖先(LCA)。 最后一點很重要。
如果您的分支發生更改,則在合並過程中不會觸及它。 合並算法知道這一點,因為您的算法和 LCA 之間存在差異。 如果 LCA 和他們的 LCA 之間存在差異,則考慮進行更改。
如果我明白你有:
branch1
取自主干。branch2
取自branch1
。 你想合並什么? 是否要將branch1
和branch2
合並到主干中。 如果您通過 Subversion將trunk
復制到branch1
通過 Subversion將branch1
復制到branch2
這應該是可能的。 這樣,Subversion 就知道這兩個分支在它們的歷史上是相關的。
如果您創建了分支,使用 Windows 復制文件並添加了文件,則兩個分支之間沒有歷史記錄,合並會更加困難。
可以將branch2
的更改合並到branch1
嗎? 如果是這樣,我會做這樣的事情:
branch2
branch1
到branch2
並提交這些更改。 branch2
將在所有的變化branch1
。trunk
branch2
合並到trunk
。 Trunk 現在將在branch1
和branch2
進行所有更改。當您嘗試使一個分支看起來與另一個分支完全相同時,“合並兩個不同的樹”選項很有用。
相反,如果您希望輸出分支包含來自兩個分支的更改,則應使用“合並修訂范圍”選項。
使用合並一系列修訂選項的步驟:
注意: output branch
是指您要將更改合並到的分支。 而input branch
指的是你想在輸出分支中合並其更改的分支
output branch
的干凈工作副本input branch
input branch
的所有修訂,請選擇“所有修訂”。 如果您只想合並特定修訂,請選擇“特定范圍”並使用“顯示日志”按鈕選擇修訂。 TortoiseSVN在這方面很聰明,任何已經合並的修訂都會變灰並標有已經合並的圖標output branch
有關更多詳細信息,請參閱TortoiseSVN Docs on Merging
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.