2009-08-23 20 views
6

我们最近发生了一些事件,有些代码已经发布到现在还没有计划发布。意外发布的代码生活。如何防止再次发生?

它显然已经检查到后备箱。这很好,我猜你想'检查早,经常检查'

但是在这种情况下,它不应该在下一个版本中发布。

可以采取什么样的检查/策略/过程来避免代码被过早过滤。

在我看来,即使持续集成和单元测试,这是一个人工程序问题?

- Lee

回答

8

修改您的集成过程。

如果“上线”意味着有人正在执行某些批处理脚本 - 如果再次发生此问题,请不要感到惊讶。

另外,考虑分支。一个常见的例子可能是使用trunk进行开发,一个单独的分支用于测试(比如说,每周合并一次),以及RTC的最后一个分支(来自上述测试分支)。

这个分支在部署到生产之前应该进行彻底的测试。

+1

我是分支发布式风格开发的支持者,在trunk中完成,然后在一个星期内完成足够的时间来彻底测试),释放之前,树干被分支,该分支被测试,然后分支被部署。 – 2009-08-23 16:41:16

2

这个问题显然不是检查代码库到代码库。你有两个问题在这里:

1)任何代码应该生活必须有一个特殊的版本标签或分支或任何取决于您使用的源代码管理。因此,代码在开发中永远不会与代码混淆。

2)谁是未经测试的代码仍然活着的白痴?如果开展活动的人认为您的开发代码是可以投入使用的,那么缺乏沟通是很重要的。

7

你应该有不同的分支,如果你的源代码控制软件允许这样的事情。

在这种情况下,您将有一个人负责将已经达到主分支质量栏的代码合并到生产分支中。


UPDATE: 虽然具体的产品,在TFS 2008 Branching Guide 2.0提供的指南有很多,可以适用于具有创建新的分支的能力,其他源代码控制软件的指导方针。

4

不要从树干生产到生产环境 - 手动将测试的树干代码合并到生产分支中并由此生存。或者如其他答案所述,在测试过程中使用适合您需要的任何分支和步骤。另外,花费超过一天左右时间的代码更改一般应在单独的功能分支中进行,直到完成为止。

+0

是的。也许http://www.perforce.com/perforce/conferences/us/2005/presentations/Wingerd.pdf更详细地描述了这一点。 – ChrisW 2009-08-23 16:08:03

1

可以放什么样的检查/策略/ 进程的地方,避免 代码被释放住 过早。

我会说任何没有检查到主干作为习惯性发展仪式的进程,这意味着除了牛仔编码以外的任何开发模式。

让开发人员尽早登记并经常进入他们的功能分支,并在时间到了时将其合并到主干中。

2

要继续讨论分支,这是保持版本处理结构的方法。

我们使用trunk作为主分支,当我们到达开发周期中的一个特定点时,我们不允许再提供一些特性(只有bug修复),我们为该版本分支一个NEW分支(而不是经历容易出错的合并),并且在我们构建发行版之前,该分支已经过很好的测试。当然,要实现这个功能,每个程序员都需要在功能冻结日期临近时保持提交清洁。

1

我们构建了一个可与Subversion一起使用的发布管理器。 www.ReleaseManager.com 因此,我们可以控制问题编号(或错误编号)发布的内容,并且我们拥有控制权,以便我们可以在需要时从版本中抽取出来。寻找测试站点现在:)

2

在我看来,即使连续 集成和单元测试,这是一个 人的程序问题?

确实!但是,您应该能够从您的基础架构获得一些支持,以支持您的流程的人员方面。当你要发布一个版本时,你应该能够很容易地看到所有的提交以及所有相关的问题。这是持续集成的报告方面。 (我想说有four elements(pdf):构建,部署,测试和报告。)

相关问题