SaaS公司如何验证和跟踪他们向客户发布的代码?

Mda*_*daG 5 verification mercurial saas harvest

我在一家SaaS公司工作,该公司每六周向我们的客户发布新功能和错误修复程序.当我们编写代码更改时,它们会在到达生产服务器之前通过不同的步骤(如状态机).根据是在常规开发周期中进行更改还是作为紧急修复,步骤会有所不同.我们目前正在使用Harvest来管理这些步骤,并跟踪正在向客户发布的代码(功能和错误修复程序包),从这个意义上讲,它运行良好.

不幸的是,从程序员的角度来看,Harvest既昂贵又难以使用.分支和合并是一场噩梦.所以我们正在考虑转向Mercurial.Mercurial似乎在这些领域表现出色.但是,Mercurial似乎不是用于跟踪更改或管理上述过程,而是仅用于SCM.

问:在发布过程中我们有什么选择,当然还有其他SaaS公司(例如Google,Flickr,Facebook,LinkedIn)在将代码发布到生产服务器之前需要质量控制吗?

问:尝试在Mercurial中构建流程是不是一个坏主意,还是我们需要与Mercurial一起使用其他工具?

[编辑] 为了澄清,这是我们(建议的)分支结构.

以下是我们目前在Harvest中的流程:

Hotfix <--> Test Level 1 <--> Test Level 2 <--> Master (Production)
Feature <--> Test <--> Release Test <--> Master (Production)
Run Code Online (Sandbox Code Playgroud)

我不是在寻找一个bug跟踪器,而是一个部署工具,它可以帮助我们跟踪和部署已经过我们的测试人员验证的代码(发布分支中的代码).如果同时处理多个修补程序,我们需要能够一起测试它们,如果有人破坏了代码,我们需要能够"降级"代码,将更改改回工艺流程中的一步.今天,这两个开发人员可以"推动"他们对测试级别1的更改,并且可以同时测试两个更改的系统.如果一个开发人员的更改只有在与其他开发人员的代码一起时才会中断,那么很容易从测试级别1降级.

Mda*_*daG 0

我开始意识到,我们正在寻找的不是一个问题跟踪器,而是一个替代 Harvest 方面的部署工具。GoAnthill Pro是两个候选者。