主存储库是所有开发人员签入的地方,可以说它位于 http://hg.main.com:8000/project
现在,我们还有http://hg.qa.com:8000/project,所有最新的代码都需要同步,加上测试和其他工件都在这个存储库中。只有在 85% 的测试通过时,才会将其“推送”到中央存储库。
- 有没有更好的方法来实现这一点?
- 我需要什么 hg 命令,以确保我不会覆盖最新的提交
主存储库是所有开发人员签入的地方,可以说它位于 http://hg.main.com:8000/project
现在,我们还有http://hg.qa.com:8000/project,所有最新的代码都需要同步,加上测试和其他工件都在这个存储库中。只有在 85% 的测试通过时,才会将其“推送”到中央存储库。
从类似的东西开始:批准管理:审计和质量保证
为了谁?
如果您需要使用开发人员团队和单独的 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 签名才能进入更高的存储库。