我为每个新功能创建分支。然后我将它们合并到主干后,我将它们发送到测试站点。这意味着主干不稳定。
我想知道是否有更好的方法。
修改 阅读评论后,我意识到我应该指明它是一个网络应用程序。所以测试每个分支的网站似乎有点难以维护。
答案 0 :(得分:4)
我使用以下内容:
分支:不要总是编译,也不总是稳定
trunk:总是编译,并不总是稳定
标签:始终编译,始终稳定
最终测试是针对标记进行的,然后再将其转换为实时发布标记。
这样,主干是否不稳定无关紧要
答案 1 :(得分:3)
我更喜欢让主干保持稳定,我对主题here
进行了很好的讨论答案 2 :(得分:3)
有一点是,你可以在合并之前测试分支。通常,主干不被视为稳定的开发,您不时创建快照,修复它们上的错误而不添加功能(甚至删除功能,如果它们有缺陷或不完整)并将这些分支释放为稳定。
编辑:进一步解释一下:将功能分支长时间与主干分开可能会导致集成问题。您的团队会识别后期发生冲突的更改 - 不仅在源级别上,还在语义级别或数据级别上。保持躯干电流可以快速发现这些问题。因此,我宁愿稳定在一个单独的分支上。
答案 3 :(得分:1)
您可以拥有分支/新功能和分支/稳定
行李箱不稳定,但是当你将树干“冻结”在树枝上时......那就是稳定的树枝。
答案 4 :(得分:1)
你需要主要使用“标签”,这只是标记特定版本的主干是稳定的。标签通常用于标记版本,这意味着代码对于标记版本是稳定的。
这样做的方法是维护一个所有成员贡献代码的主干。如果一个成员想要开发和测试一个新功能,他会创建一个分支,开发他的东西,测试它,然后合并到主干。当您决定发布中继的下一个稳定版本时,则测试中继代码,如果发现稳定,则将该中继的特定版本标记为发布版本或稳定版本。否则,修复后备箱或分支中的错误并将其合并回主干,再次测试主干,如果发现稳定,则将其标记为稳定释放。在这里,您始终认为标签是稳定版本,主干是开发版本,您的分支是实验版本。
但是即使在这里,你需要对进入后备箱的内容以及决定稳定版本的内容进行一些质量控制。
答案 5 :(得分:0)
为什么在测试完成之前将开发合并到主干?您可以等到测试确保更改在将系统合并到主干之前不会破坏您的系统,
您的一般合并策略是什么?你有发行分支还是从主干中释放?
答案 6 :(得分:0)
你能不能在mergine回到后备箱之前测试分支?
否则像Mercurial这样的分布式版本控制系统可能就是前进的方向。有了它,您可以为每个功能定义新的存储库,并进行测试,并推送到“trunk”存储库。