分布式环境中的分支

时间:2011-08-30 15:26:03

标签: version-control branching-and-merging

我很想听听如何在分布式SC环境中使用“分支”。 我们刚刚开始在团队环境中使用mercurial,我希望从别人的经验中学习 - 有什么好的方法来“组织”分支实践(希望我能绕过痛苦和时间来做一个愚蠢的方式.. 。)

根据我的阅读,主干应该包含正在进行的开发代码,一个分支可能是'稳定'版本,其他分支可能是实验或功能......它们会合并到主干上...... < / p>

然而 - 对我来说有点不清楚的地方就是错误修复和质量保证......我读过的大部分内容都是为了QA分别进行分支(完成后将主干合并到分支中,然后推送分支到主干 - 这似乎很麻烦,没有解释)

我还读过你在你的稳定分支(或发布分支)中进行错误修复,然后与主干合并......这看起来很直观 - 因为你可能会在修复时破坏'稳定'分支错误...我希望稳定的分支是“稳定的”并且与版本#...

不可触及

我可以看到分支是必要的 - 但帮助我理解那里的一些实践。我们正在使用解释性语言(不合规)来处理网络应用程序 - 所以它很容易改变,破坏事物。

感谢。

=======================

罗杰,亚历克斯 - 谢谢 - 这是有道理的 -

然而,我现在对于将分布式模型与集中式“融合”有一个“小小”的关键点......那里有很多写作建议有一个中央存储库 - 一个“水坑”(如果你将每个人分享或“拉”最新的。

所以现在我找到你推荐的分布式模型 - 打破(至少在我的脑海里)......我不想保留5个以上的主干(主要,修补程序,部署/ QA,开发,功能-n)人们拉/推每个 - 所以看起来开发人员肯定会从开发中拉出来 - 他们可能会分支局部分支功能。或者热点修复...然后一些管理员将中央开发与CENTRAL RELEASE合并...开发团队'可能'有一个本地发布分支来修复QA团队传回的...如果他们推出释放和让ADMIN与DEV合并?然后将自己的更改从CENTRAL DEV拉回到本地???或者他们应该在本地合并 - 只需将RELEASE推回中央?

为了与此保持一致 - 我认为开发团队没有需要或想要拥有MAIN的本地副本......

似乎维护(推荐)3中继中央存储库(MAIN,QA,DEV)确实混淆了分布式模型的工作流程。但似乎有一个中央MAIN - 可以推送到你的制作盒 - 以及一个中心QA,这些QA可以推送到QA盒子并由一个单独的团队进行QA ..(因此无法在逻辑上对每个人的开发当地的盒子)

哇 - 管理大型工作流程是纠结的 - 必须有一些关于管理这些东西的文献 - 不同的工作流程想法等。他们自己的工具不能很好地描述“如何”使用它们......(就像电钻没有提供如何建造橱柜的说明!!!(lol)

再次感谢

1 个答案:

答案 0 :(得分:2)

有一种名为Flow的流行分支模型。它本质上是一个程序映射和一些帮助程序脚本。虽然脚本是专门为git构建的,但程序映射应该适用于您的情况。基本上:

  • 实时代码的主分支。没有人直接反对这个分支。
  • 为大多数开发人员开发分支。这是大部分工作完成的地方。
  • 长期运行功能的功能分支,最终合并开发。
  • 在发布之前释放分支从开发中分离功能冻结。完成后,代码将合并为master。
  • 用于紧急工作的Hotfix分支机构。这些将从master中拆分,然后合并回develop和master。