【问题标题】:why use branches in svn?为什么在svn中使用分支?
【发布时间】:2011-02-03 04:15:51
【问题描述】:

我知道你可以在 svn 中按照这个结构来组织你的文件:

树干 分支机构 标签

如果您想拥有单独的开发线,请将主干复制到分支中的文件夹。稍后您将此分支合并回主干。

但我想知道为什么我和我的团队应该这样做。为什么要将主干复制到分支并使用此副本只是为了将其合并回主干,并且意味着代码经常更新/承诺与主干保持同步。那么为什么不直接使用后备箱呢?

创建分支有什么好处?

如果有人能阐明这个话题,那就太好了。

提前致谢

【问题讨论】:

标签: svn


【解决方案1】:

想象一下,如果您只使用主干,并且正在提交重大更改,那么这些更改完成并测试发布将需要 2 个月。现在进行此过程 3 周后,在该软件的最后一个主要版本中发现了一个严重错误。您需要实现一个小的更改来修复此错误,并且该小更改需要基于生成最后一个主要版本的代码。但是,您所拥有的只是其中包含未经测试的重大更改的主干。您可以做的最好的事情是使用日期/时间或标签返回并尝试创建用于上一个主要版本的源代码的副本。

如果您在为 2 个月的发布周期处理新功能/更改之前创建了一个分支,那么主干将不会受到影响,您可以轻松地使用主干,或者从主干再次分支,以实现关键错误修复和发布。此外,当您将主要更改合并回主干时,从差异中可以明显看出已经实施了小错误修复,并且您可以确保它也被集成。从而确保“通道外”关键错误修复不会在下一个主要版本的发布中恢复。

【讨论】:

  • 另请注意,您可以保留分支的单独副本作为该特定版本的快照。这样你就永远拥有一个 v1.1 分支和 1.2 分支。如果您有不同的许可级别,您可以针对您的产品的不同“版本”进行调整。虽然可以通过标签完成类似的事情,但我认为每种方法都有一些怪癖,我不记得所有这些。所以我不能说这是否是最好的方法。
【解决方案2】:

在我看来,分支最重要的方面是让你能够定期连续释放主干。

分支让您的开发人员可以完成一项任务并一直工作到完成,而不会妨碍您下一个版本的发布。如果一个分支的发布时间比最初计划的要长,那么您不必在发布之前推迟产品的下一个版本。

希望对你有帮助:)

【讨论】:

    【解决方案3】:

    如果您在开发 v 3.0 时需要继续支持 v 2.0 产品,则需要一个独立于 v 3.0 的 v 2.0 分支。然后,您可以同时开发两个不同的版本,而不会影响每个团队的努力。

    【讨论】:

      【解决方案4】:

      我有一篇关于这个主题的博客文章,它可能有助于进一步了解何时/为什么使用分支以及它们在 Subversion 中的实现方式。 http://www.sublimesvn.com/blog/2009/11/what-are-branches-tags-and-trunk-in-subversion/

      【讨论】:

        【解决方案5】:

        如果你需要在达到某个里程碑时发布一些版本,你会发现需要分支,你可以为不同的版本定义不同的分支。它更清楚地了解代码数据库、结构......你不觉得吗?

        【讨论】:

          猜你喜欢
          • 2021-10-06
          • 1970-01-01
          • 1970-01-01
          • 2016-10-05
          • 1970-01-01
          • 2011-07-07
          • 2011-11-25
          • 2016-09-11
          • 1970-01-01
          相关资源
          最近更新 更多