为什么在svn中使用分支?

时间:2010-03-31 22:26:40

标签: svn

我知道您可以根据svn中的这种结构来组织文件:

躯干 分支机构 标签

如果您想拥有单独的开发线,则将主干复制到分支机构中的文件夹。稍后你将这个分支合并回主干。

但我想知道为什么我和我的小组应该这样做。为什么要将主干复制到分支并使用此副本只是为了将其合并回主干,并且代码经常更新/提交以保持与主干保持同步。那为什么不用干线呢?

创建分支有什么好处?

如果有人能够阐明这个话题,那将会很棒。

提前致谢

5 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:7)

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

分支机构允许您的开发人员完成任务并对其进行操作直至完成,而不会妨碍您的下一个版本的发布。如果分支花费的时间比最初计划的要长,那么您不必在发布之前推迟下一版本的产品。

我希望有帮助:)

答案 2 :(得分:2)

如果您在使用v 3.0时需要继续支持v 2.0产品,则需要v 2.0的分支,该分支与v 3.0分开。然后,您可以同时开发两个不同的版本,而不会影响每个小组的工作。

答案 3 :(得分:2)

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

答案 4 :(得分:0)

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