我很想知道分布式SC环境中如何使用“分支”。 我们刚开始在团队环境中使用mercurial,我希望从别人的经验中学习 - 有什么好的方法来“组织”分支实践(希望我可以绕过痛苦和时间来做一个愚蠢的方式。 ..)在分布式环境中分支
从我读过的主干应该包含正在进行的开发代码,一个分支可能是一个'稳定'版本,其他可能是实验或功能...合并到主干上...
但是 - 对我来说有点不清楚的是bug修复和QA之类的东西......我读过的大部分内容都提到要分别为QA分支(在完成时将树干合并到分支中,然后推分支到树干 - 这看起来很麻烦,而且没有解释)
我也读过你在稳定的分支(或发行分支)中进行bug修复,然后与主干合并......这似乎与直觉相反 - 因为你可能会像你一样打破“稳定”分支修复错误...我期望稳定的分支是'稳定的',并且与版本#无法触及...
我可以看到分支是必要的 - 但帮助我理解一些在那里的做法。我们正在使用解释型语言(未编译)来开发Web应用程序 - 因此改变事物并破坏事情是非常容易的。
谢谢。
=======================
罗杰·亚历克斯 - 感谢 - 这是有道理的 -
不过,我很现在有一个'小'的关键点'融合'分布式模型与集中......在那里写了很多建议有一个中央存储库 - 一个“水坑”(如果你愿意)每个人都去'分享'或'拉'最新。
所以现在我发现你推荐的分布式模型 - 打破了(至少在我心中)......我不想保留5个以上的主干(main,hotfix,deploy/QA,develop,feature-n )并且让每个人都进行拉/推 - 所以看起来开发人员LOCALLY似乎将从开发中拉出来 - 他们可能会在本地分支以获取功能。或修补程序...然后一些管理员会将中央开发与中央释放合并...开发团队可能有一个本地发布支持来修复QA团队返回的问题......他们是否应该推动发布和让ADMIN与DEV合并?然后把他们自己的改变从CENTRAL DEV回到他们的本地?或者他们应该在本地合并 - 并将RELEASE推回中央?
与此一致 - 我不认为有必要或想要有主要的本地副本...
好像保持开发团队(推荐)3树干中央存储库(MAIN, QA,DEV)真的会混淆分布式模型的工作流程。但是,有一个中心MAIN--被推送到你的制作工具箱 - 似乎需要一个中心QA,它将gests推送到QA包装盒,然后由一个单独的团队进行质量检查。(因此不能合乎逻辑地放在每个人的设备上盒子本地)
哇 - 管理大型工作流程很纠结 - 在管理这些东西时必须有一些文献 - 不同的工作流程想法等。工具他们自己不会很好地描述如何使用它们...(就像电钻不带有关于如何建立内阁的指令!!!笑)
再次感谢
我想发布一个答案,并链接到相同的博客文章,但你击败了我。我们使用与所描述的类似的模型,它对我们来说工作得非常好。所以,+1 –
QA分支在哪里适合?或QA检查“发布” - 与发布工作合并回到开发...... ???? – jpmyob
@jpmyob:关于在发布中的工作,请注意图 - 承诺发布总是合并回来开发,以及掌握。关于质量保证,没有硬性规定,但我认为你会发现它通常是在发布分支上完成的,因为开发分支在任何给定时间都可能被破坏。所以一般来说:大多数工作都是针对开发完成的,当您准备发布时,您会裁剪一个发布分支并针对该分支执行质量检查。 QA期间发现的错误在发布分支上得到修复。当QA完成时,您将发布分支合并到master和development中。 –