2010-06-01 54 views
6

我正在创建一个使用版本控制和我的基于Web的应用程序的过程。这是我到目前为止:SVN开发和发布过程 - 完整性检查

  1. 我正在做branches/development下的主要开发,并保持与我的开发服务器同步进行测试。
  2. 我使用svn:externals将Zend Framework引入到我的项目中。我使用的版本号从发布我感兴趣的标签例如,1.10.5 Release在修订22306,所以我svn:externals看起来是这样的:
    • -r 22306 http://framework.zend.com/svn/framework/standard/trunk/library/Zend/ Zend
    • -r 22306 http://framework.zend.com/svn/framework/extras/trunk/library/ZendX/ ZendX
  3. 我将branches/development的测试稳定代码合并到trunk,并从中创建版本标记。然后,我将该标签所做的修订发布到我的生产服务器上。

我真的没有修补程序的计划,但我想我可以处理这样的情况的生产标签。

我是使用Subversion的全新软件,所以请让我知道我是否忽略了某些东西,或者做了些什么来咬我。

谢谢!

+2

so _that's_什么是外部的! :) – zvolkov 2010-06-01 14:22:13

回答

1

你有比大多数人更好的过程。我现在工作的公司除了创建新的生产分支(版本1.01.1,1.01.2等),而不是像您使用的版本标签(由于我们使用的脚本)之外,完全一样。

您需要确保的唯一一件事情是,如果您可以在出现故障时轻松回滚。我喜欢使用的是SIM卡链接。因此,当我部署到生产环境时,我会全新检查我正在部署的版本,并将simlink apache点更新为指向新版本并对其进行测试。如果我遇到问题,我会将链接更新回最后一个仍在服务器上检出的工作副本。即时回滚。如果你有这个问题解决你很好去恕我直言。

+0

不幸的是,我没有命令行访问我的Web服务器,所以我不能做符号链接。我为我的Subversion托管使用Beanstalk - http://beanstalkapp.com/,他们有一个将发布版推送到Web服务器的好工具。它使我很快恢复到以前的版本。 – Sonny 2010-06-01 14:11:12

+1

那听起来不错。你的流程相当糟糕。作为对上述某些评论的回应,我更愿意为他们承诺的团队/项目分支,然后在完成QA测试后(根据已关闭任务/错误的修订版本号)将其合并到主干中。 IMO主干应始终代表稳定的产品发布。我认为你在这条道路上是正确的。 – 2010-06-01 14:22:25

2

你的方法听起来不错,但你也可以在干线上做你的发展,并在测试和稳定时标记它。我不确定你通过使用一个单独的分支来获得主要的发展。

+1

我看到它由几个人推荐。保持稳定的行李箱应该可以在较大的团队中更好地扩展。我按照你的建议开始,但是在这个过程中看到了智慧,所以我改变了。 – Sonny 2010-06-01 14:19:13

+2

@Sonny如果团队规模很大,可以在分支机构中开发某些功能并在中继线或其他分支中修复bug修复等。这给出了制作包含修复但不包含仍在开发中的功能的版本的选项。 但是,如果团队很小,并且您认为您不想忽略正在进行的任何代码以发布版本,则只需在trunk中进行开发即可。 随着情况发生变化,您可以从一种方法更改为另一种方法。 – Alb 2010-06-01 14:26:08

+0

改变方法的好处。 Subversion使它变得非常简单! – Sonny 2010-06-01 14:40:33