2010-01-13 73 views
3

我創建了一個分支這樣問題保持分支同步

svn copy svn+ssh://foo.bar/svn/myproject/trunk svn+ssh://foo.bar/svn/myproject/branches/feature-x 

我接着結帳我的分支的工作副本複製到另一個目錄。

由於這是一個功能分支,我想保持它與主幹同步。根據SVN書,這應該像我的工作副本目錄一樣簡單

svn merge svn+ssh://foo.bar/svn/trunk 

但它不起作用。我不知道它試圖做什麼,但它似乎試圖合併每一個曾經被提交給主幹的改變。相反,我本來期望它只嘗試併合並之後發生的變化,發生在中繼之後。

如果我嘗試

svn propget svn:mergeinfo . 
從我的工作拷貝

,我什麼也沒得到。如果我理解正確,我應該看到哪些修訂可用於合併。

我使用SVN v1.6.5

作爲變通,現在,我通過寫

svn info 

,以獲得最新修改的修訂版本開始。然後

svn merge -r xxxx:HEAD svn+ssh://foo.bar/svn/trunk . 

其中xxxx是最新更改的版本。

更新

原來我們在辦公室,不支持合併跟蹤運行SVN服務器的一個古老的版本。

回答

2

據svn書,這應該是越簡單 svn merge svn+ssh://foo.bar/svn/trunk

這是正確的。但是,本地svn客戶端和存儲庫都必須至少在版本1.5上才能支持合併跟蹤。請參閱release notes中的「合併跟蹤和兼容性」部分。

如果我從我的工作副本中嘗試svn propget svn:mergeinfo . ,我什麼也得不到。 如果我理解正確,我應該 瞭解哪些修訂 可用於合併。

這裏您的期望是不正確的。 svn:mergeinfo財產記錄已在合併的修訂。它沒有列出符合合併條件的修訂。要列出符合合併條件的修訂版,請執行以下操作:

svn mergeinfo --show-revs eligible svn+ssh://foo.bar/svn/trunk