【发布时间】:2012-10-31 23:48:30
【问题描述】:
我们使用 Subversion,除了像我这样的少数人之外,几乎没有在 Subversion 中进行分支和合并的经验。我的 Subversion 经验仅限于简单的功能分支,其中合并和树冲突虽然并不罕见,但解决起来并不难。
鉴于此,我正在帮助管理一个项目,在该项目中,我们当前对主干方法的承诺根本无法满足我们的需求。我向我的本地化团队介绍了功能分支和合并,我们取得了一些成功。然而,简单的特征分支仍然无法回答我们所有的问题,例如:
- 我们如何为这个版本和后续版本并行开发代码?
- 什么代码被认为是稳定的?
- 下一个版本中将包含哪些(开发中的)代码?
- 后续版本中将包含哪些(开发中的)代码?
- 我们的测试、验收或生产环境是什么版本的代码?
- 我们如何将并发开发活动与已知稳定版本集成,以减少引入错误和不完整的工作?
- 我们如何为已发布的代码提供热修复?
- 我们如何通过源代码控制了解当前正在进行的开发活动?
- 我们如何在不破坏当前代码库的情况下进行实验或研发?
似乎git-flow as defined here 可以回答很多这些问题。我在 Mercurial 中尝试了这种方法,似乎也可以在那里实现这种方法。遗憾的是,目前无法迁移到 DVCS。
但是,我在 Subversion 中模仿这种方法的短暂尝试失败了,因为许多合并和树冲突。合并选项和边缘情况众多且令人费解。
可以使用 Subversion 来实现git-flow,如果可以,痛苦程度如何?
【问题讨论】:
-
TEST、ACC 和 PROD 是什么意思?
-
Nihathrael,这些是指我们通过测试、验收和生产来推广代码的三个环境。我已经编辑以更清楚地了解这些项目。
标签: svn branching-and-merging git-flow trunk