Moh*_*nka 132 deployment version-control project-management
维护代码时要遵循的最佳实践和经验法则是什么?在开发分支中只有生产就绪代码,或者开发分支中是否有未经测试的最新代码,这是一种好的做法吗?
你们如何维护开发代码和生产代码?
编辑 - 补充问题 - 您的开发团队是否遵循"尽快提交 - 通常 - 甚至是代码包含 - 次要错误或不完整"协议或"提交 - 只有完美的代码"协议,同时将代码提交给开发分支?
Von*_*onC 110
这完全取决于发布管理的顺序性
首先,你的后备箱中的所有东西是否真的适合下一个版本?您可能会发现一些当前开发的功能是:
在这种情况下,trunk应该包含任何当前的开发工作,但是在下一个版本之前定义的发布分支可以作为合并分支,其中只合并适当的代码(验证下一个版本),然后在认证阶段修复,并最终冻结,因为它投入生产.
在生产代码方面,您还需要管理补丁分支,同时请记住:
当涉及到dev分支时,你可以有一个主干,除非你需要进行其他开发工作,例如:
现在,如果你的开发 - 发布周期是非常顺序的,你可以像其他答案所说的那样:一个主干和几个发布分支.这适用于小型项目,其中所有开发都必须进入下一个版本,并且可以冻结并作为发布分支的起点,可以在其中进行补丁.这是名义上的过程,但只要你有一个更复杂的项目......它就不够了.
回答Ville M.的评论:
ste*_*enj 43
我们用:
直到项目接近完成,或者我们正在创建里程碑版本(例如产品演示,演示版本),然后我们(定期)将我们当前的开发分支分支到:
没有新功能进入发布分支.只有重要的错误在发布分支中得到修复,修复这些错误的代码重新集成到开发分支中.
具有开发和稳定(发布)分支的两部分流程使我们的生活变得更加轻松,我不相信我们可以通过引入更多分支来改进它的任何部分.每个分支也有自己的构建过程,这意味着每隔几分钟就会产生一个新的构建过程,因此在代码检查之后,我们会在大约半小时内获得所有构建版本和分支的新可执行文件.
有时,我们还为一位开发人员提供分支机构,从事新的未经验证的技术,或创建概念验证.但通常只有在更改影响代码库的许多部分时才会执行.这种情况平均每3-4个月发生一次,这样的分支通常会在一两个月内重新整合(或报废).
一般来说,我不喜欢每个开发人员在自己的分支机构工作的想法,因为你"跳过去直接转向集成地狱".我强烈建议不要这样做.如果你有一个共同的代码库,你应该一起工作.这使得开发人员对其签名更加谨慎,并且根据经验,每个编码人员都知道哪些更改可能会破坏构建,因此在这种情况下测试更加严格.
在办理登机手续的早期问题:
如果您只需要签入PERFECT CODE,那么实际上什么都不应该被检入.没有代码是完美的,并且QA需要验证和测试它,它需要在开发分支中,以便可以构建新的可执行文件.
对我们而言,这意味着一旦某个功能完成并由开发人员进行测试,就会检查它.甚至可以检查是否存在已知(非致命)错误,但在这种情况下,受该错误影响的人员是通常告知.还可以检查不完整和正在进行的代码,但前提是它不会导致任何明显的负面影响,例如崩溃或破坏现有功能.
偶尔出现一个不可避免的组合代码和数据签入将使程序无法使用,直到构建新代码.我们至少要在登记注释中添加"等待构建"和/或发送电子邮件.
Dan*_*Dan 15
对于它的价值,我们就是这样做的.
大多数开发都是在主干中进行的,尽管可能破坏系统的实验性功能或事物往往会得到自己的分支.这很好用,因为这意味着每个开发人员都在其工作副本中始终拥有最新版本的所有内容.
它确实意味着保持干线处于模糊的工作状态非常重要,因为它完全可以完全破坏它.在实践中,这种情况不会经常发生,并且很少是一个重大问题.
对于生产版本,我们分支主干,停止添加新功能,并处理错误修正和测试分支(定期合并回主干),直到它准备好发布.此时我们最后合并到trunk中以确保一切都在那里,然后释放.
然后可以根据需要在发布分支上执行维护,并且可以轻松地将这些修复合并回主干.
我并不认为这是一个完美的系统(它仍然有一些漏洞 - 我不认为我们的发布管理是一个足够紧密的过程),但它运作良好.
Phi*_*ppe 11
为什么没人提这个呢?一个成功的Git分支模型.
这对我来说是最终的分支模型!
如果您的项目很小,请不要一直使用所有不同的分支(也许您可以跳过小功能的功能分支).但除此之外,它就是这样做的!
分支上的开发代码,在Trunk上标记的实时代码.
不需要"只提交完美代码"规则 - 开发人员错过的任何东西都应该在四个地方被提取:代码审查,分支测试,回归测试,最终QA测试.
这是一个更详细的逐步说明:
归档时间: |
|
查看次数: |
44770 次 |
最近记录: |