我创建了一个像这样的分支
svn copy svn+ssh://foo.bar/svn/myproject/trunk svn+ssh://foo.bar/svn/myproject/branches/feature-x
然后我继续在另一个目录中查看我的分支的工作副本。
由于这是一个功能分支,我想让它与trunk保持同步。根据SVN书,这应该像
一样简单svn merge svn+ssh://foo.bar/svn/trunk
来自我的工作副本目录。
然而,它不起作用。我不确切地知道它试图做什么,但似乎尝试合并所有已经提交给trunk的变化。相反,我原本以为它只会尝试合并之后发生在trunk 上的更改。我做了分支。
如果我尝试
svn propget svn:mergeinfo .
从我的工作副本中,我什么都没得到。如果我理解正确,我应该看到哪些修订可用于合并。
我正在使用svn v1.6.5
作为一种解决方法,现在,我从写作开始
svn info
获取最新更改的修订版。然后
svn merge -r xxxx:HEAD svn+ssh://foo.bar/svn/trunk .
其中xxxx是最新更改的版本。
更新
原来我们在办公室运行一个古老版本的svn服务器,它不支持合并跟踪。
答案 0 :(得分: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