2010-10-28 59 views
1

我知道这与编码无关。但是这对编码很重要,所以在这里张贴。svn工作过程

Trunk,Branch是什么意思。

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

我有4层。

  1. 开发人员机器码。
  2. stage02
  3. stage03
  4. 生产

应该怎样进行行李箱?

回答

1

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

我曾与下面的工作流程:

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

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

  • 当功能开发由开发人员组完成时,有时会为大功能创建单独的分支,并且/或者可能会对其他开发人员产生显着影响。这种方法的好处是有问题的,并且取决于具体情况,因为SVN中的合并过程有时很昂贵。

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

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

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

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

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

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

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

  • 进一步的产品开发也在后备箱中进行。

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

1

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

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

+0

感谢您的回复。在我的情况下,你有什么建议。生产是用户使用的一个主要代码,并且UAT完成的stage02和stage03。那么结构应该如何呢?什么应该是主干,什么应该是stage02和stage03以及本地系统数据。 – Hacker 2010-10-28 12:54:31

+0

在我描述的模型中,除生产以外的每个阶段都使用树干,只是它的不同版本。分支仅用于将错误修复应用于公开发布的版本,当然,生产源自当前版本分支。我知道这并不理想,但坦率地说,我对Subversion的分支/合并功能没有多少信心。如果你想要明智的事情,你真的需要切换到像Mercurial或git这样的分布式VCS。我认为git是一个更好的工具,尽管它的Windows支持远不如Mercurial那样精致,如果你在Windows上开发,这是一个艰巨的任务。 – 2010-10-28 22:22:17

+0

但是Mercurial和git都是比Subversion更好的选择。 – 2010-10-28 22:24:50