不将发布分支合并到Trunk会给我带来什么好处?

时间:2016-12-05 23:59:04

标签: svn version-control merge

TLDR;我的团队的SVN分支策略不会回到主干。这感觉就像一个反模式,我无法立即解释原因。这是一个问题,那些问题是否足以推动变革呢?

详细 -

我的团队商定的分支策略是创建月度发布分支。通过将.ear文件交给另一个团队进行部署来处理版本 - 不将它们指向我们的SVN存储库。

我们在开始生产每个分支之前保留最后一次提交的标记,供以后使用。我们每天都会建立一个开发环境来捕捉破坏的构建。

但是当我们为下一个版本创建一个分支时,我们从现有的发布分支分支 - 并且永远不会返回或与Trunk交互。任何对分支发布版本的分支后更改都会合并,直到最终版本完成为止。

Trunk
|\
| April
|      \
|       May
.          \
.           June...
.
.

我们在项目分支方面存在问题,这些问题已合并到预计将推出的版本中。

我们不使用功能分支,因此回滚或从发布中删除更改是一件麻烦事,因为每个发布分支都是开发和错误修复分支。

除此之外,是否存在受此分支策略影响的基本SVN功能,对存储库的不良影响或其他风险?

1 个答案:

答案 0 :(得分:0)

如你所说,我可以想象,回滚或删除版本中的更改是令人讨厌的,但仍然可行。

使用此SVN设置雇用新的新开发人员时,您将失去宝贵的时间。他们将更难以学习,贡献和故障排除这个存储库。与拥有可读代码很重要的方式相同,拥有可读存储库非常重要。

如果您的团队遇到存储库问题,那么从书籍,网站和其他人那里寻求外部建议将更加困难。

如果您想将任何类型的第三方软件合并到您的存储库,可能很难,因为使用中继的SVN约定已被忽略。

您的存储库组织似乎受到每月节奏的尴尬限制。如果您需要在一个月内完成两个代码滚动怎么办?你创建半个月的分支吗?

您的团队缺少SVN标记的概念。标签是不需要编辑的最终版本。这些标签通常具有类似Application-1.2.3的版本号。版本号是整数的三元组:MAJOR.MINOR.PATCH。这向开发人员表明应用程序的变化有多大,以及一个版本与另一个版本有多大差异。

看看这本在线书籍,我发现它很有用:
http://svnbook.red-bean.com/en/1.8/svn.basic.html