【问题标题】:Multiple feature development branch in subversion颠覆中的多功能开发分支
【发布时间】:2011-02-23 04:49:39
【问题描述】:

生日,

下面的策略可以用subversion实现吗?

  1. 包含应用程序生产版本的稳定主干
  2. 拥有多个功能的独立开发分支
  3. 保持开发分支与稳定主干同步
  4. 个别功能从开发分支合并/复制到主干,因为它们已准备好生产

想要 2. 的原因是我们还需要一个“早期版本”构建,它包含当前正在开发的所有功能。

标准的feature branch 模式是不够的。分支拥有一个特性,一旦特性合并到稳定的主干中,就应该删除它。我读到您可以merge --reintegrate 之后继续使用分支,但不建议这样做。

我想知道(文件系统)是否可以将开发分支中的单个功能复制到主干的工作副本(构建、测试、提交,然后立即将分支与主干同步)?同步会导致冲突,但很容易解决。

谢谢,
克里斯。

【问题讨论】:

    标签: svn build merge branch


    【解决方案1】:

    您可以创建任意数量的分支,名称“主干”和“功能”没有什么特别之处。在您的情况下,我会说创建几个功能分支,可能以您的跟踪器中的功能票项目命名。

    【讨论】:

    • 谢谢萨蒂亚。您对树干和树枝之间的区别只是名义上的说法是对的,我对此表示赞赏。但是,当每个功能都驻留在单独的分支上时,我看不出如何(轻松地)维护一个“早期访问”版本,该版本包含 所有 正在开发的功能。我怎样才能做到这一点?
    • 如果我正确理解了您的问题:您可以拥有trunk、devel、earlyaccess、f1、f2、... fn 分支。准备好时将 f1 到 fn 与 earlyaccess 合并。使开发与主干保持同步。将 f1 到 fn 合并到主干。嗯,似乎会有同步问题,很多冲突。这是假设我明白你想要什么。嗯,用 git 代替? (我是一个 svn 人,所以不是那种宣传 :-)
    • 是的,我认为您正确理解了这个问题,感谢您的建议,但我认为同步和冲突问题会使实践变得过于困难。不幸的是,git 不是一个选项,所以在没有任何其他建议的情况下,我将采用我最初的建议。
    【解决方案2】:

    是的,您的策略可以通过颠覆来实施。但这将非常低效,因为您必须在合并命令中列出与要合并的功能相关的所有提交(或提交范围)。

    更好的策略是使用单一功能分支。您可以拥有任意数量的分支,并随时单独合并它们。而且您不必在这样做时列出提交,因为您通常会合并每个分支的整个更改集。

    人们经常争辩说要避免分支,因为很难合并回来。但是从多个功能分支中挑选樱桃更令人不快。

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多