est*_*r h 9 mercurial branching-and-merging
我的开发团队刚刚开始使用Mercurial,我们对以下几点感到困惑:
我们是一个php webdev团队.
我们有3个开发人员.我们现在正在做的大部分是一个非常新产品的错误修正.还做了一些新的功能开发.
我们有2个QA人员.必须先测试每个错误修复和功能,然后才能生效.
到目前为止,每个开发人员都有自己的存储库 我们有一个名为WebDev的中央服务器,它有自己的回购.开发人员从WebDev获取,然后进行一些更改(即修复错误),然后推送到Webdev.然后,QA测试人员将测试中央服务器上的代码(因此测试WebDev中的代码),如果有效,他会将该代码推送到我们的生产服务器.
这不能很好地工作,因为......当Developer-1(dev-1)修复bug并推送到WebDev时会发生什么.同时,dev-2修复了一个不同的bug并推送到WebDev.质量检查人员在那里测试代码,并批准第二个错误修复但不是第一个.他如何在没有第一个变速器的情况下将第二个变更集推向生产?我们似乎失去了版本控制系统的所有优点.
我已经阅读了很多关于分支的内容,但我无法弄清楚如何让这对我们有用...我们为每个错误修正和新功能创建一个新的分支,并且只有经过测试后,QA才会合并到WebDev上的默认分支?这是最好的方式,还是我缺少的东西?
谢谢!!
---- ----更新
感谢所有回答到目前为止的人.这是我现在所处的位置......我能想到两个解决方案.
1)dev-1修复了bug-101的bug.他从webdev,合并和本地提交.他把它设置在测试中.QA直接从他的存储库中提取,并在本地进行测试.如果它通过,QA将从webdev - > merge - > push拉到webdev(如果它发生了很大变化,可以再次检查以确保它没问题).所以我们一次只测试一件事,WebDev只包含测试人员在本地测试过的变化,并且总是稳定的.
2)为一切创建分支.dev-1创建分支"bugfix-101"然后推送到webdev而不合并它.QA可以测试分支代码,如果它已获批准,则将其与默认分支合并.我对这个方法有四个问题 - (a)是否可以将开放分支推送到远程存储库?(b)如果QA合并并关闭webdev上的分支,下次我拉,我的本地回购还会关闭并合并分支吗?(c)你如何从分支代码进行测试?当我在浏览器中运行Web应用程序时,我如何从分支测试?(d)是否存在创建如此多命名分支的性能问题(假设其中大部分将快速关闭)?
再次感谢.
欢迎来到Bassam:
您的团队显然错过了Mercurial中的(非常简单)分支和合并以及使用monolitic(?)默认分支.
只需略微改变您的思路和工作流程,您就会发现一个很大的不同:
这样,您就不会在一个批准周期中混合多个开发操作
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |