2012-09-23 62 views
8

如果SVN合併以前的版本到工作副本

  • 我工作的SVN分支在修訂5.
  • 我做出改變,致力於打造修訂R6。
  • 回覆到R5爲R6引入的任何問題,並承諾,創造R7
  • 繼續R7上工作,最終提交更改多達R10

如何合併在R6中所做的更改回我的工作複製?

我已經試過

svn merge -r5:6 . 

svn merge -r5:HEAD . 

這兩者似乎什麼也不做。我究竟做錯了什麼?

回答

2

我不太熟悉命令行svn。但如果正確的用法沒有得到你想要的結果,我想嘗試:

  1. 從版本r6(r6和r5之間的區別)創建一個補丁。
  2. 將其應用於工作副本。
+1

謝謝,我已經考慮過了,最後還是用'svn diff -r5:6> patch.diff'' patch -p0 user1692222

+0

我這樣做,只是重新應用diff文件。 –

1

嘗試顛倒合併出初始還原的修訂。

例如而不是svn merge -r 5:6嘗試 svn merge -r 7:6。

0

您可以恢復。創建一個標籤。一旦你完成,你可以,如果你使用的是相對較新的SVN版本從標籤到你工作的分支合併改變

6

,你可以使用:

svn merge -c -6 . 


(或特定文件(S)你想恢復,而不是)
這是一個縮寫 '':

svn merge -r6:5 . 

所以如果你在舊的subversion版本(在1.6.x之前)可以使用這種語法。

這可能會將屬性引入您的存儲庫(svn:mergeinfo,如果內存服務),至少如果您在整個目錄上執行合併。將更改還原爲單個文件或一組文件不會影響屬性。如果您不希望將這些屬性添加到存儲庫中,則可能需要回退到補丁(自動或手動)。

4

試試這個:

svn merge --ignore-ancestry -r5:6 . 

或使用新的語法: 「」

svn merge --ignore-ancestry -c6 . 

b.t.w:我建議始終指定你想要的,而不是工作的哪些文件

+0

這與Subversion 1.7.19完美結合,謝謝! – iboisver

+0

我同意,這是問題的正確答案。謝謝Midis。 – Thibault