2

主存储库是所有开发人员签入的地方,可以说它位于 http://hg.main.com:8000/project

现在,我们还有http://hg.qa.com:8000/project,所有最新的代码都需要同步,加上测试和其他工件都在这个存储库中。只有在 85% 的测试通过时,才会将其“推送”到中央存储库。

  1. 有没有更好的方法来实现这一点?
  2. 我需要什么 hg 命令,以确保我不会覆盖最新的提交
4

1 回答 1

0

从类似的东西开始:批准管理:审计和质量保证

为了谁?

如果您需要使用开发人员团队和单独的 QA 团队明确批准的代码历史记录和完整的跟踪记录,那么此工作流程可能适合您。

要求

您只需要 Mercurial(命令行)、一个用于交换数据的共享存储库(一个简单的 SSH 服务器就足够了,单个私有 bitbucket 存储库也是如此)和 GpgExtension。

流动

此工作流使用默认分支进行开发,以及一个名为 QA 的分支和一个发布分支。

优点是将默认值合并到 QA 需要显式合并,随后可以由负责它的开发人员签署 GPG。

当 QA 完成应用他们的更改时,它们首先合并回默认值(以便开发人员在 QA 版本上工作),然后合并到发布中,GPG 签署合并提交。

开发商

hg pull # 获取最新更改
汞更新
hg 提交 -m ""
hg 更新-C QA
hg 合并默认值
hg commit -m "合并的 QA 默认分支"
汞标志
汞推

质量保证

汞拉
汞更新质量保证
hg commit -m "QA 修复"
hg 更新 -C 默认
汞合并质量检查
hg ci -m "将 QA 修复合并回开发分支"
hg 更新 -C 发布
汞合并质量检查
hg commit -m "将完成的 QA 合并到发布中"
汞标志

修改

如果您需要的层不仅仅是开发人员和 QA,只需添加额外的命名分支,例如发布前的 staging-release。

为了确保代码真的被所有人检查过,你可以要求所有的 head 都必须是 GnuPG 签名才能进入更高的存储库。

于 2011-03-22T20:12:24.803 回答