2008-12-30 53 views
67

我使用的是Subversion 1.4.6,現在我無法升級到版本1.5。將主幹合併到Subversion中的分支

的情況:

  1. 樹幹有很多結構改變(即移動文件,主要是)。

  2. 我有一個分支,最近從幹線合併,但在重大變化之前。

將樹幹合併到分支的最佳方式是什麼?

我腦子裏想的是什麼:

  1. 第一支謹慎地合併到主幹,由分支到主幹只合並修改過的文件。

  2. 將樹幹複製到分支。在不丟失分支歷史的情況下做到這一點的最佳方式是什麼?我應該否決分支並創建一個新分支?


好了,它看起來像我沒有給予足夠的SVN信貸。畢竟它足夠聰明。我剛剛被「D」和「A」的輸出推遲了,但在後臺做了一個動作。

+1

**的問題和答案是相關的非常古老的SVN客戶端和服務器版本和不相關的SVN 1.5+,尤其是SVN 1.8 + ** – bahrep 2017-04-13 06:46:38

回答

81

有沒有什麼能阻止你合併自上次合併後的所有修訂版本?

svn merge -rLastRevisionMergedFromTrunkToBranch:HEAD url/of/trunk path/to/branch/wc 

應該工作得很好。至少如果你想合併所有的變化到你的分支。

+3

當我dried-運行它,那裏有很多「D」和「A」用於許多文件,因爲在trunk中移動的文件。我的問題是SVN是否記得這種情況下的文件歷史。 – 2008-12-30 07:27:42

+0

在trunk中移動文件時使用了svn rename嗎?如果你這樣做,歷史應該保持。我認爲你應該小規模嘗試 - 創建一個新的存儲庫,一個帶有單個文件的主幹,一個帶有更改的分支,對主幹做一個svn重命名並檢查歷史是否存在。 – 2008-12-30 07:42:10

+1

我怎麼知道哪個是從樹幹合併到分支的最後一個版本? – 2009-10-13 17:46:00

15

修訂從主幹分支合併可以通過工作拷貝目錄中運行這個命令可以找到:

svn log -v --stop-on-copy 
9

這是「老土」的方式來指定要合併的版本範圍。隨着1.5+可以使用:

svn merge HEAD url/of/trunk path/to/branch/wc 
相關問題