繁体   English   中英

svn merge不合并

[英]svn merge doesn't merge

我正在尝试将一些来自trunk的修补程序合并到一个分支上。 当我比较trunk/foo.pybranches/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不一定是相关的。

我先说

  • Trunk和Branch文件都是否已提交给SVN? 如果文件不在存储库中,则不会发生合并。
  • 比较svn info <trunk>/foo.pysvn <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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM