Mercurial:表明分支机构已通过测试?

时间:2011-01-18 17:13:30

标签: version-control mercurial workflow dvcs

如果我们要迁移到DVCS(很可能是Mercurial),我正在努力在我公司建立工作流程。我想做的一件事就是拥有一个QA存储库。我们的想法是每个开发人员都在一个分支上工作,当他们完成后,分支就会被推送到QA。从那里,测试团队可以进行测试并报告任何错误。一旦分支完全测试并且可以接受,它将被推送到暂存存储库,在该存储库中,在推送到中央存储库之前将合并回主线。

如果每个人只是以某种方式传达他们的工作状态,这可以很容易地工作,但我知道这并不总是按照你想要的那样发生。我担心的是QA回购中的分支机构在等待,但没有人知道它是否等待测试,正在测试,等待修复,等待被推送到临时区域等所以我正在寻找的是想法如何将状态添加到分支?如果我们可以使用钩子来通知人们状态的变化,这样做也会有好处。

任何想法都会受到赞赏。

5 个答案:

答案 0 :(得分:5)

不幸的是,我认为您需要一个不同的系统来跟踪工作流程的这一部分。

存储库包含的内容本身不应该无所不知,但当前的Q& A状态必然会与存储库的内容正交。

让我重新说一下。您在Q& A存储库中有10个变更集,可以进行测试。正是每个测试人员关注的内容,每个测试的状态等都会发生变化,即使这10个变更集保持不变。

我肯定会尝试使用错误跟踪系统,您可以通过某种方式集成存储库历史记录,即使只是将系统中的问题与其变更集相关联。

我注意到你的评论没有获得购买Kiln的支持,但是你应该能够整合其他系统,这会给你类似的东西。

我非常反对尝试将Mercurial用于服务不能支持的东西,尝试使用标签可能会失败,并且书签会给你带来麻烦,正如你已经注意到的那样。

再次,尝试找一个单独的系统来跟踪Q& A状态。

答案 1 :(得分:1)

一个简单的方法可能是将一个元数据文件保存在repo的根文件夹中,名为.teststatus,或者某些,如下所示:

# branch-name, last passed revision
default, 0123456789ab
stable, 0123456789ac
bobs-dev-branch, 0123456789ad
marys-dev-branch, none

在这里,使用标签或书签会感觉像是一种滥用。您不能跨分支使用相同的标记(例如passed必须是stable-passed),标记通常不会移动。另一方面,书签旨在移动,但您仍然存在分支命名空间问题。

答案 2 :(得分:0)

该网站的创始人之一Joel Spolsky制作了一个名为FogBugz的程序,该程序与Mercurial集成,可以轻松跟踪每个人的状态。

答案 3 :(得分:0)

我不完全确定您的工作流程如何运作,但这里有一些想法:

  1. Tags
  2. 在测试时使用named branchesclose the branch。点击hg branches会显示哪些分支仍处于待处理状态。
  3. 您可以使用incoming hook自动通知添加到质量检查报告中的新变更集。

答案 4 :(得分:0)

如果开发人员尚未准备好进行质量检查,为什么会将某些内容推送到QA存储库?我认为将变更集推送到QA指定存储库的行为应该是该功能准备好进行测试的信号。

功能branches by cloning是我最喜欢的方法。