2012-04-11 78 views
0

我在使用SVN的开发团队中工作。我们始终保持稳定且可拆卸的后备箱。所有的开发都在分支上完成,然后在准备发布时合并到主干。如果在合并到主干之前需要查看/测试某些内容,我们可以将该分支(可称为功能分支)部署到其他开发人员和/或项目经理可以看到的开发环境。这在大多数情况下运作良好。它不能很好地工作的原因是我们有多个不同的分支,这些分支是同一个发布周期的一部分,但不一定相互关联,在同一时间段内所有分支都可以合并到主干之前都需要获得批准。我们考虑的是将它们全部合并到一个组合发行版分支。那么问题是,如果只有一部分合并的分支被批准发布,我们需要在我们转到主干之前重新合并没有这些分支。我们基本上必须进行两次合并 - 一次到开发或功能分支,然后可能第二次将已批准和可发布的分支合并到主干。SVN开发实践 - 如何从分支机构转移到组合分支机构

有没有更好的方法来做到这一点?我觉得如果我们从个人分支合并到一个功能分支,然后再将这些分支合并到主干,我们可能会遇到问题。我是否正确地认为或者这不是问题?

回答

0

这不是Tags的用途吗?

在处理个别功能时分支。将它们全部合并回躯干进行测试。测试完成后,错误已经修复,并准备好发布,标记干线。然后你每个版本都有一个标签。

我真的不明白需要在trunk中只有可释放的代码。当然,在主干中永远不会有无法释放的代码几乎是不可能的(如果你原谅双重否定)。

+0

我们可以利用最后一个稳定版本的标签而不是我们目前的策略 - 但两者都是有效的。我相信,现在我遇到的问题不会更好或更糟。即使我们确实承诺将trunk作为标准,我们仍然不希望将分支承诺到trunk,直到他们按计划发布。例如,如果分支A和B被合并为主干,但分支B未被批准启动,那么我们必须从主干中取消分支B合并以获得分支A直播。 – natealvar 2012-04-16 02:23:25

1

继Aphillippe的建议之后,您可以进一步从主干创建发布分支,然后为每个个体patch release添加标签。

此方法允许任何活动缺陷在发布分支上与主干隔离(这些修补应该合并回主干)。隔离使客户能够获得缺陷修复程序,而无需升级到最新版本的软件 - 这可以使他们免受可能与“全面”升级相关的潜在实质性测试时间。

+0

这与我们现在所做的相似。我们不向客户发布代码,我们发布到一个实时Web应用程序,但我知道这种方法仍然适用。我遇到的问题是测试和安排这些分支机构与主干的合并,并在开发环境中与分支机构合作。 – natealvar 2012-04-16 02:33:28