2012-10-22 186 views
0

我有一個關於在Subversion中合併的問題。所以我有一個後備箱,然後是來自後備箱的兩個分支。因此,可以說我有一個樹幹,然後分支從樹幹創建的A,然後從樹幹創建分支B.SVN分支合併

可以這麼說,我對B進行了修改,然後更改爲幹線,然後將幹線更改合併到B中,並簽入分支B.我現在要合併到分支A而不是幹線。有可能將分支B合併到分支A中嗎?或者我首先必須將分支B合併到主幹然後分支A?

+0

當然有可能。修訂只是文件的變化,沒有魔法可以阻止你做事。問題是:您想要將哪些更改合併到分支A中? – arkascha

+0

我想合併自分支B創建以來的所有可用更改。正如我上面提到的,此時分支B與TRUNK是最新的。 –

+0

然後繼續:嘗試想象svn merge命令表達什麼:「接管從修訂版'a'到修訂版'b'所發生的所有更改」。簡單。沒有魔力。請記住,「分支」或「後備箱」的概念沒有任何技術含義。這只是名字,就是這樣。 – arkascha

回答

0

你可以合併你想要的任何分支

0

你可以在SVN中單獨合併修訂版本。所以是的,只需選擇你想從B合併到A的修訂版,它應該可以正常工作。如果B中存在缺少A的文件,但您尚未合併其添加,則可能會發生樹衝突。您可以通過合併丟失的文件,將它們最初添加到B的位置清除這些文件。

+0

是的,我看到樹木衝突。讓我說現在我在A分支上。我可以通過運行svn log --stop-on-copy branchB和我看到的任何修訂#來看到分支B上的第一個修訂版,那麼我只需要運行「svn merge -r rev#:HEAD http:// url/branches/branchB「(假設im在branchA工作區中)。 –

+0

樹衝突通常表示正在合併的東西,它或者不存在,或者從目標分支中被刪除。 Ergo,您無法將更改合併到修訂歷史記錄中不存在的內容中。嘗試通過確保源分支與您的目標分支完全符合文件結構來解決衝突,然後如果需要,合併已添加或刪除樹衝突抱怨的文件的修訂。 – Zoltan