svn工作流程

时间:2010-10-28 12:33:31

标签: svn

我知道这与编码无关。但这对于编码很重要,所以在这里发帖。

Trunk,Branch是什么意思。

SVN中的发布流程如何进行?

我有4层。

  1. 开发者机器代码。
  2. stage02
  3. stage03
  4. 生产
  5. 什么应该成为树干?

2 个答案:

答案 0 :(得分:1)

主干通常(但并非总是)代表每个人在正常开发过程中贡献的主线活动代码库。分支是通过分叉主干(或另一个分支)创建的。 Subversion对此的支持并不是很好(即使在近几年解决了一些主要问题之后),并且大多数团队都避免使用它,不幸的是,这意味着他们通常被困在主干身上。

您可以使用的一种实用方法是在发布时创建发布分支。这使得团队可以继续在主干上开发产品,而支持人员可以在新分支上修复已发布产品的错误。这通常可以正常工作,因为主干和当前发布分支之间没有太多的合并活动,并且当它存在时,它很少是结构性的(移动,重命名等,对Subversion中的分支和合并产生可怕的影响)

答案 1 :(得分:1)

一般来说,工作流程通常是针对特定团队/项目而定制的。

我使用了以下工作流程:

  • Trunk是主要产品趋势的地方。它包含当前开发的版本或产品。

  • 为产品的所有已发布版本创建分支。修补程序和次要更新在分支中完成(然后构建,测试并交付给最终用户)。类似的修复也被提交到trunk(或者稍后从分支合并)。

  • 有时会为大型功能创建单独的分支,当功能开发由开发人员组完成时,和/或可能会显着影响其他开发人员。这种方法的优点是值得怀疑的,并且取决于具体情况,因为SVN中的合并过程有时很昂贵。

  • 开发人员的机器只保留工作副本,版本开发人员目前正在处理。开发人员经常更新,并修复所有冲突。此外,开发人员经常使用即用型代码进行提交。

  • 产品经常构建和测试 - 这样可以尽快找到新引入的错误。

合并程序在SVN中相当昂贵。进一步的工作流程复杂化可能导致痛苦的合并。顺便说一句,有些团队成功应对了这一点。

我建议您查看分布式版本控制系统。 Joel Spolsky的这篇文章很好地描述了他们的主要优势:http://www.joelonsoftware.com/items/2010/03/17.html

回答您的具体问题,我可能会提出以下建议(顺便说一下,我看不到整个开发过程,所以这可能不适用):

  • 在主干中执行主动开发。 Trunk版本安装在测试服务器上。

  • 当接受产品发布时,会创建新分支。此版本安装在生产服务器上。

  • 进一步的产品开发也是在行李箱中进行的。

  • 修补程序在相应的分支中生成。分支版本在测试服务器上进行测试,然后交付给生产。