请忍受我......
(编辑...)
╔════════════╦═══════════════════╦══════╗
║ repo name ║ role ║ user ║
╠════════════╬═══════════════════╬══════╣
║ RepoMain ║ production ║ Mr.A ║
║ RepoTest ║ test server ║ QA ║
║ RepoB_vm ║ Mr.B's vm ║ Mr.B ║
║ RepoB_home ║ Mr.B's final repo ║ Mr.B ║
║ RepoC_vm ║ Mr.C's vm ║ Mr.C ║
║ RepoC_home ║ Mr.C's final repo ║ Mr.C ║
╚════════════╩═══════════════════╩══════╝
你可以想象Mr.A和其他人合作,所以他有自己的存储库(同一个项目)
有几个热门的新问题,我认为我还没有结束。
在您自己的VM(虚拟机)上运行的基本工作流程
提交您的更改 - >从测试服务器拉到Repo_vm - >运行你的测试 在vm上 - >成功然后要求QA从Repo_home拉出来
这可能是最好的工作流程吗?我总是害怕合并问题(有时更新的更改会丢失..我有一次可怕的经历)。 我不认为生产< ---测试服务器有什么大不了的,因为它是单向的。这听起来像是一个安全的合并。
但是多个开发人员使用相同的测试服务器回购,如果我们这样做,我们最终将迈克尔迈尔斯追逐我们。
更明确地扩展上述工作流程......
考虑到拉取请求,这是一个更好的工作流程吗?
Q2:质量保证给出有限的时间是什么意思?
第三季度:开发人员应该多久从测试服务器中提取(包含最新的alpha稳定版本)?感谢。
答案 0 :(得分:3)
合并是一个棘手的问题。 Mercurial可以自动处理事情,但无法解决冲突。这最好留给一个人,而做这件事的最佳人选是开发人员进行更改。不要让QA合并任何东西。合并冲突需要仔细注意细节,不应掉以轻心。粗心的合并是一个软件无法解决的问题。
我认为您的工作流程很好。 QA应该将拉取请求视为队列。当开发人员到达队列的前端时,他有机会进行拉取,合并和测试。一旦他完成,他就会通知QA,QA然后撤回他的更改。由于没有其他代码进入存储库,因此保证QA不必合并。
QA还可以为开发人员提供有限的合并,构建和测试时间,具体取决于流程的速度和开发人员更改的大小。这样一来,你就不会在糟糕的开发人员背后挣扎着一大堆变化,这些开发人员正在努力让事情发挥作用。