[英]svn merge doesn't merge
我正在尝试将一些来自trunk的修补程序合并到一个分支上。 当我比较trunk/foo.py
和branches/feature/foo.py
,我看到了差异。 然而,当我运行svn merge https://<svn server>/trunk/foo.py foo.py
,没有任何更改被合并。 使用--force
选项重试也没有任何效果。 似乎SVN认为功能分支的foo.py
副本是最新版本。 如何说服SVN呢?
编辑:我的Subversion客户端是svn
版本1.6.16(Linux)。 服务器正在运行trac,版本0.12。
EDIT2:服务器的subversion版本是1.6.9。 感谢评论中的hasienda指出trac和subversion不一定是相关的。
我先说
svn info <trunk>/foo.py
和svn <branch>/foo.py
; 检查上次更改的修订版和日期,如果SVN说它们是同一个文件,则不会发生合并。 您可以查看高级合并以获取更多信息。
我不确定你使用的是什么版本的subversion,但是我认为合并跟踪还没有完全实现。
每当Subversion中的某些内容出现异常或似乎比它应该更难时,我的一般经验法则是在一个新的,干净的目录中获取一个新的工作副本,并在没有本地修改的情况下再次尝试。 这往往排除了一些难以察觉的微妙问题。
另外,执行svn diff <server>/branches/this_branch <server>/trunk
以确保Subversion认为存在合并更改。 在此处使用两个存储库路径将消除工作副本的任何可能问题。 如果上面的diff
命令在您将分支URL与WC的路径交换时给出了不同的结果,那么问题可能在您的工作副本中。
您还可以通过向merge
命令提供两个完整URL来纯粹在存储库中进行merge
。 如果你走这条路线,我强烈建议使用--dry-run
选项在合并之前预览合并。
此外,您是否有合理使用特定文件名而不是简单地将整个/trunk
合并到您的分支的原因? 在将整个修订版本合并到一个分支而不是特定文件中时,我通常会看到更少的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.