svn - 合并到分支时发生冲突,删除代码中的一些更改

标签 svn merge branch

我们最近创建了一个分支,其中包含为特定客户定制的代码版本。我们同时在两个分支上工作,将“常见”更改提交到主干,然后将它们合并到分支。

最近,我们遇到了麻烦。在 trunk/bar.c 中,我们(除其他外)有一个 foo() 函数。现在,在 branch/bar.c 中,该函数已被删除,因为它在那里没有用处。在 trunk 中修改 foo() 时会出现问题。当我们将更改合并到分支(“合并修订范围”)时,TortoiseSVN“3向合并”工具显示方法上的冲突(这很烦人,但我可以看到一些原因) ),但它也显示了文件中的许多其他更改 - 这似乎是凭空出现的(看起来有点像它想显示之间所做的所有更改树干和 Twig )。这使得合并变得更加困难,因为它散布着一些不重要和旧的更改。

你有遇到过这样的情况吗?您有什么建议,特别是为了在合并过程中更容易发现重要差异?

作为(希望)临时解决方案,我将尝试 #ifdef 删除已删除的区域,以便 SVN 认为代码仍然存在,并且可以更好地进行合并。 (不幸的是,这会让代码变得有点难看,并且当删除更多函数时会变得更难看。)

最佳答案

您可能需要考虑

  1. 您的提交是否足够频繁,以及
  2. 您是否要合并正确的修订版或修订版范围。

在我看来,您的修订并没有达到您想要的粒度;也就是说,一次修订包含多项变化。要么是这样,要么你试图合并比你需要的更广泛的修订。无论如何,如果您更频繁地提交,可能会有所帮助。

对于这种特殊情况,您必须手动合并文件 - 一旦这样做,您应该能够合并不涉及 foo() 的后续修订,而无需任何干预。

关于svn - 合并到分支时发生冲突,删除代码中的一些更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1588118/

相关文章:

java - Jenkins/Maven增量构建麻烦

apache - SVN (TortoiseSVN/SlikSVN) - 服务器证书已更改 : connection intercepted?

svn - 颠覆 : detect a renamed folder

svn - 远程(免费)SVN 主机

Django 临时将其他数据库结果与 ORM 合并

java - GitHub 在不同的分支上工作,但在同一个类上。我们如何 merge 这个?

git - 连接两个 Git 存储库的历史记录?

git - 如何恢复对 Git 中未命名分支的提交?

c++ - 完美预测分支的分支预测开销

git - 为什么我不能从我的远程分支中 pull ?