Jer*_*nch 5 svn merge branch branching-and-merging
我习惯使用svn进行分支和合并,通常这很好用.然而,在两个分支中处理了一个组件,并且基本上将组件放在不同的方向上,因此自动合并将不起作用并且使用超出比较显示文件大多不同.
我试图将一些文件拼接在一起,但结果,即使它们有效,也是相当可怕的.
我很想对企业说这是不可能完成的.我可以看到这令他们感到沮丧,因为他们有模块+功能A工作和模块+功能B工作但模块+功能A +功能B只是没有意义.例如,特征A可以移除作为特征B中的关键组件的东西.
有没有办法尝试合并这样的代码?或模块+ A + B真的模块+ C?
我们确实看到了这一点,但是功能A需要的时间比功能B更短,而功能B是长期运行项目的一部分.有没有办法避免这种情况发生?或者他们的方法是如何构建代码,以便两个功能很好地结合在一起?
你所说的本质上是试图重新建立一个分支的基础。一些 DVCS对此有支持,但我不知道 SVN 中对此有任何支持。
你最好的选择是选择一个分支(现在最重要的一个)并将其合并到应该相当直接的主线中。在另一个分支中,您需要从主干中提取更改并协调差异,考虑到您所描述的情况,这几乎肯定不会是自动的,您可能需要花一些时间思考如何在顶部实现此分支功能合并到主线中,但这就是并行开发的成本:事情发生了变化。
将来如何避免这种情况?频繁整合。
如果你有两个团队,每个团队都有代码库 A,并且他们在不同的功能上工作了 6 个月,那么集成将会非常痛苦,因为每个团队都会对 A 做出其他团队已更改的假设。另一方面,通过每周或每月的集成构建,每个团队都应该更加了解对方正在进行哪些更改,并且最终的集成应该更容易。
这就是为什么开源项目经常反对巨大的补丁,它们过时的速度快得惊人,而且没有人真正有时间正确地审查它们。另一方面,如果您将相同的贡献分解为许多独立的、易于消化的小部分,那么您的贡献更有可能被 A) 接受和 B) 正确审查,这样就不会导致源源不断的缺陷。