2009-08-12 221 views
87

我想合併所有發生在rev 10 & HEAD rev http://url-of-branch-a之間的更改並將它們應用於http://url-of-branch-bSVN - 將一個分支合併到另一個分支?

喜歡的東西...

svn merge -r 10:HEAD http://url-of-branch-a 

這可能嗎?如果是這樣,語法是什麼?

我正在從unix命令行運行SVN客戶端。 svn客戶端版本爲1.4

編輯:是的,我具體的解決辦法是......

  1. 目錄更改爲想要接收的變化的工作副本的位置(分支B)
  2. SVN合併-r 10:HEAD http://url-of-branch-a

此合併來自變化 '分支-A' 到 '分支-b'

+4

因爲這是一個普遍的需求,因此Billy3有一個很好的答案,並且在網絡上的其他地方記錄很差。 – fooMonster 2011-04-12 11:40:47

+4

你還需要知道什麼時候採取了分支。您可以在分支中執行此操作(svn log --stop-on-copy。)以獲取您從其分支的修訂號。 – jmc 2012-06-15 12:05:55

+0

@jmc自2008年SVN 1.5發佈以來,您不再需要它了,AFAIR – bahrep 2016-04-21 16:03:58

回答

49

結帳URL A. 使用SVN合併網址B.合併A. 的工作副本提交A.

反之亦然當然:)

+1

謝謝。這讓我以正確的方式思考這個問題。作出一個簡單的解決方案 – user62732 2009-08-12 14:55:01

116

這是一個過程分爲三個步驟(如BillyONeal顯示)。

  1. 建立支路B的工作副本(svn checkout http://branch-b
  2. 合併從支路A變爲B(svn merge -r 10:HEAD http://branch-a .
  3. 的工作副本提交工作副本B到分支B(解決衝突後)(svn commit

檢查svn合併語義的手冊頁(幫助文件)。它向你展示了svn merge總是將結果轉儲到工作副本中。

檢查出the SVNBook的所有細節。

+0

現在總的感覺。謝謝! – user62732 2009-08-12 14:55:42

+35

+1 - 這個答案比我的好。 – 2012-03-21 20:30:14

+0

你還可以給一個想法如何使用eclipse中的SVN插件嗎? – 2015-03-31 11:32:21

0

主要是由試圖在svn的做迷惑merge,我們不能直接合併到svn的回購協議,我們可以合併到工作的本地機器的副本如下:

  • 工作副本應該是destination URL合併(即結賬目的地)。

  • 合併工作副本與source URL合併。

  • commit到目的地。

最佳實踐:在合併,合併輸出。

相關問題