2009-07-21 135 views
4

我遇到过使用楼梯分支的项目。为了澄清,这是代码被分支用于开发和开发完成的方法,而不是切回到主干/主线,开发分支被指定为实时代码集并从中取出新的分支。这继续无限。“楼梯”分支的好处是什么?

我个人比较喜欢减少干线方法来维护一个单一的“实时”代码集。不过,我想知道楼梯方法是否有任何竞争优势。

感谢, 汤姆

回答

3

当你想创建多个分支并同时对它们进行开发时,这种方法会在derriere中咬你。合并回树干可以让您拥有平行分支,并且可以轻松地将它们集中在一个分支上。

0

有一对夫妇的(可能较小的)这种做法的好处。

最引人注目的好处来自于无需将更改合并回主分支。这使得为​​分支的版本保留一个分支(旧的“trunk”)很容易,同时也不需要开发分支继续工作。实际上,这与带有一个活动主干并标记或分支发行版没什么两样,但是除了“移动”您的开发而不是移动标记的分支之外。这可以使得用更少的努力维护清洁分支变得更容易,因为不需要为每个发布“标记”新分支 - 它只是自动发生。尽管如此,这只是一个小小的节省时间。

不过,根据我的经验,有一个潜在的缺点。我经常发现,这种方法通常会让开发人员意外地破坏库中的二进制兼容性,因为你总是在开发一个副本,每个“发布”都是一个独立的分支。由于不需要重新合并到主干,因此可能很容易意外中断API。这不是国际海事组织的主要问题,但需要注意,因为在合并过程中没有任何努力(这似乎是大多数这些错误经常被发现的地方)。

1

我相信这是一种让回滚更容易,并且版本之间的差异更清晰一些的方法。继续开发以前的版本也很容易(例如,为开发人员提供版本,为设计人员提供版本)。

我自己更喜欢带有指示检查点的标记的其他方法。我使用git,分支和做这种东西的过程是非常好的。

1

从第一个阶梯开始,您处于开发第一个版本时的相同位置。 这个,关于什么回到主干没有迟到的决定。楼梯的建造是你最新的人选。

处罚,如果很多变化和修复原来你已经合并做,这可能是破坏性的。我猜测,如果新版本的变化率和旧版补丁的速度使楼梯不够理想,可能会有盈亏平衡点。