svn合并不';t合并

svn合并不';t合并,svn,merge,trac,Svn,Merge,Trac,我正在尝试将一些热修复程序从主干合并到分支。当我比较trunk/foo.py和branchs/feature/foo.py时,我看到了差异。然而,当我运行svn merge时https:///trunk/foo.py foo.py,不会合并任何更改。使用--force选项重试也没有效果。SVN似乎认为feature分支的foo.py副本是最新版本。否则,我如何说服SVN 编辑:我的Subversion客户端是svn1.6.16版(Linux)。服务器正在运行0.12版的trac EDIT2:服务

我正在尝试将一些热修复程序从主干合并到分支。当我比较
trunk/foo.py
branchs/feature/foo.py
时,我看到了差异。然而,当我运行
svn merge时https:///trunk/foo.py foo.py
,不会合并任何更改。使用
--force
选项重试也没有效果。SVN似乎认为feature分支的
foo.py
副本是最新版本。否则,我如何说服SVN

编辑:我的Subversion客户端是
svn
1.6.16版(Linux)。服务器正在运行0.12版的trac


EDIT2:服务器上的subversion版本是1.6.9。感谢hasienda在评论中指出trac和subversion不一定是相关的。

我不确定您使用的是什么版本的subversion,但合并跟踪在1.5版之前还没有完全实现。

我想首先

  • 主干和分支文件是否都提交给SVN?如果文件不在存储库中,则无法进行合并
  • 比较
    svn info/foo.py
    svn/foo.py
    ;检查上次更改的版本和日期,如果SVN说它们是同一个文件,则不会发生合并

您可以查看更多信息

每当Subversion中的某些内容出现意外行为或看起来比它应该的更难时,我的一般经验法则是在新的干净目录中获取一个新的工作副本,然后在不进行本地修改的情况下重试。这往往会排除一些难以发现的微妙问题

另外,执行
svn diff/branchs/this_branch/trunk
,以确保Subversion认为有需要合并的更改。在这里使用两个存储库路径将消除工作副本中可能出现的任何问题。如果上面的
diff
命令在将分支URL与WC的路径交换时给出不同的结果,那么问题可能是工作副本中的某些内容

您还可以通过向
merge
命令提供两个完整的URL,纯粹在存储库中进行合并。如果您采用这种方式,我强烈建议您在正式合并之前使用
--dry run
选项预览合并


还有,您为什么要使用特定的文件名合并,而不是简单地将整个
/trunk
合并到您的分支中?在将整个修订合并到分支中而不是合并到特定文件中时,我通常看到的问题要少得多。

什么版本的SVN?看起来您使用的是命令行客户端?我使用的是SVN 1.6.16,我使用的是Linux的命令行客户端。这与Trac安装有什么关系?Trac除了通过HTTP让Trac repository浏览器访问存储库(只读!)之外,对存储库没有任何作用。我对Trac不太熟悉,所以我认为它以某种方式集成了Subversion。我又看了一遍,服务器上的subversion版本是1.6.9。是否在WC中合并?树干还是树枝?你读过《svn帮助合并》吗?我的svn客户端是1.6.16,根据《svn-version》。服务器实际上是trac,它的版本是0.12。服务器上subversion的实际版本是1.6.9。感谢高级合并链接。我发现如果我将SVN指向我想要合并的特定修订,它就会合并。然而,如果我只是告诉它从躯干的头部修正合并,它不会合并。我将不得不在将来进一步研究这个问题,但现在,我有了修改,我可以继续工作。谢谢你的帮助。