2009-09-03 161 views
14

我有兩個SVN分支簽出,「b1」和「b2」。我想將我的所有提交從「b1」分支合併到「b2」分支。我試過類似如何合併兩個SVN分支?

svn merge -r HEAD:HEAD b1 b2 

但它什麼也沒做。我相信我有這個命令是錯誤的,但我找不到好的文檔。我想在客戶端執行此操作,而不是創建第三個分支。

我使用SVN 1.4.4,它不支持重新集成選項。

我該怎麼辦?

+2

只需鍵入「SVN幫助合併」來獲得幫助 – 2009-09-03 04:31:44

回答

18

你的問題是與-r標誌。您必須指定範圍的修訂。因此,例如:

svn merge -r 13:HEAD b1 b2 

爲了找出正確的版本號,你可以這樣做:

svn log --stop-on-copy b1 

log然後將只列出提交其發生在b1。你會看到最小的版本號。

我從來沒有使用過這種形式。我總是確保我積極分支b2,然後做:

svn merge -r 13:HEAD url://to/branch/b1 
6

reference page for svn mergethe Subversion book

 
$ svn merge --reintegrate \ 
      http://svn.example.com/repos/calc/branches/my-calc-branch 
--- Merging differences between repository URLs into '.': 
U button.c 
U integer.c 
U Makefile 
U . 

$ # build, test, verify, ... 

$ svn commit -m "Merge my-calc-branch back into trunk!" 
Sending  . 
Sending  button.c 
Sending  integer.c 
Sending  Makefile 
Transmitting file data .. 
Committed revision 391. 

編輯: OK,讓你在使用的是舊版本的顛覆。在這種情況下,請參閱Merging a Whole Branch to Anotherversion 1.4 of the book

+0

我不能究竟重返確實找到良好的文檔。我正在合併一個分支到另一個分支,而不是一個分支到主幹。如問題中所指定的,這將在分支的2個工作副本上完成(請考慮本地目錄而不是svn服務器URL)。你能否更新你的答案以反映這些顧慮? – Tony 2009-09-03 05:09:54

+2

我也有svn版本1.4.4似乎不支持重新集成選項。因爲這似乎是一個更長的命令的捷徑,我會欣賞更長的版本。謝謝! – Tony 2009-09-03 05:14:45