在我的公司,我们目前正在使用 Subversion。我们的项目开发过程包括一个“实时”代码分支(这是我们实时 Web 服务器上的代码)、一个用于较小项目的通用开发分支,然后每个较大的项目都有自己独立的分支。在任何给定时间,我们通常至少有 2 个更大的项目正在开发中。将它们合并回实时分支可能会很痛苦,但更痛苦的是,当大型项目 1 上线时,大型项目 2 将在稍后上线,而合并过程只是……混乱。
我在 SVN 中所做的就是每天从实时(因此发生的任何错误修复等)合并到开发分支。但是更大的项目合并过程仍然很混乱,我想知道它是否会用 Git 更干净。作为 SVN 发生的“坏”事件的一个例子,我们将在 dev 上拥有一个小功能,将其合并到 live,然后在执行 live backmerge 时,SVN 尝试再次将该功能合并回 dev(导致冲突),除非我们在合并中手动取消选择该提交。据我了解,Git 足够“聪明”,可以知道提交起源于 dev,因此它不会尝试将其合并回......但我的理解可能是错误的。我还听说 Git 更擅长自动处理我们正在尝试做的复杂合并。
所以,第一个问题是:对于我们正在做的事情,Git 是否明显优于 SVN,还是我们仍然可能遇到同样的问题和毛茸茸的合并?
第二个问题:是否有其他集成方法可能更适合我们的场景?特别是,我正在阅读一篇关于混杂集成的文章,该文章看起来不错,尽管同时进行的项目越多,这似乎也会变得越来越困难。但话又说回来,我不希望我们同时拥有三个以上的大型项目,通常只有两个。对于我们的许多项目来说,持续集成并不是一种选择,因为它们往往是全有或全无的项目,或者如果部分推进的话会令用户感到不安(例如,我们最近重新设计了我们的结帐流程)。 对于我们的情况,这篇文章似乎也是一个很好的方法。