如果两个开发人员各自从主干创建一个功能分支,他们是否可以安全地在他们的功能分支之间以及从主干“同步合并”,然后仍然能够毫无问题地将每个功能分支重新集成到主干?
“同步合并”是指“svn merge ^/Project1/trunk”和“svn merge ^/Project1/branches/other-feature-branch”形式的命令,其中 svn:mergeinfo 属性将跟踪已经从每个位置合并。
我问的原因是我已经阅读了许多地方的文档,这些文档表明重新合并到分支的相同修订版中会导致冲突问题(尽管我没有看到任何地方解释了为什么会这样) . 如果是这样,那么上面描述的场景应该是有问题的,因为每个功能分支都将与主干以及另一个功能分支同步,因此在主干中所做的任何更改都将通过直接与主干同步以及同步时收到另一个功能分支(可能已经拾取了相同的主干更改)。
然而,在我所做的测试中,这似乎工作得很好,但在我推荐它作为我们团队的工作流程之前,我需要一些专家的保证。
@nosid:在此编辑中回复 nosid,因为 SO 上荒谬的字符限制阻止了 4 句评论。这是什么推特?
我已经阅读了文档。问题是它描述了一个非常简单的场景,一次只处理一个不稳定的特性,而不稳定的工作在特性分支中完成,而所有其他工作在主干中完成。在这种情况下,保持功能分支与主干同步是微不足道的。
然而,在更现实的情况下,一个产品很容易同时完成几个主要的不稳定工作。那么保持这些工作同步的过程是什么,以便它们可以按需与主干和彼此同步,但又不会对它们强制进行破坏性更改?