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