Subversion分支和发布计划

时间:2013-02-12 19:21:49

标签: svn release-management subversive

目前,我们正在遵循以下项目的简单发布计划;

  1. 开发人员提交了对subversion存储库的更改。
  2. 构建对QA服务器的更改。
  3. 构建对生产服务器的更改。
  4. 问题是我们在SVN主干中使用一个单一的源代码集来完成所有这些步骤。

    因此我们无法控制QA服务器版本(例如:避免一些要求)。

    我们发布的版本非常复杂,因为有些日子我们必须向QA服务器发布5-6次。

    我想使用subversion分支我可以克服这个问题。希望我可以为QA / live server release创建一个单独的分支,我可以从head / trunk合并必要的更改。

    或者是另一种方式?保留QA / live server release的head / trunk版本,并为开发提交创建一个分支。

    正确的方法是什么?

    请告诉我是否有更好的方法/工具来处理这种情况。

    感谢。

2 个答案:

答案 0 :(得分:1)

SVN中有一种非常流行的分支方法。这里描述了:http://svnbook.red-bean.com/en/1.7/svn.branchmerge.commonpatterns.html

在我的项目中(具有单独发布周期的单人项目)我使用发布和功能分支并且没有问题。

确切的分支政策可能会有所不同,这对我有用:

  • Trunk(只有一个):所有自动测试都通过,仅包含已完成的功能和错误修复
  • 功能分支(通常是多个):专用于单个功能或错误修复,通常构建,自动测试通常通过,完成后重新集成到主干并删除
  • 稳定分支(可能是多个,但通常是一个):专用于计划发布,自动测试通过,用于生成要发送到QA的构建,从中创建内部/外部发布标记,一些修复甚至功能可以在这里从主干合并

答案 1 :(得分:-1)

  

正确的方法是什么?

这是一个意见,但创建3个中继。一个用于开发,一个用于QA,一个用于生产。

只有在你要求项目时,才需要开发分支。

QA中继可以分支进行单元测试,同时保持中继以进行集成测试。

生产主干永远不会分支,但会为每个生产版本标记。如果有人必须修复问题,代码将被导出而不是检出。这些更改将应用​​于开发主干。

  • 查看开发代码
  • 应用生产修订更改
  • 提交开发代码。

您需要一个人和一个进程将代码从开发中继线移动到QA中继线,以及将代码从QA中继线移动到生产中继线的人和进程。