简单的mercurial webdev repo设置:功能与修复

时间:2013-05-19 11:21:33

标签: mercurial

我继承了一个基本网站的Mercurial系统,但我是Mercurial的新手,我只是临时站点的保姆,直到我们找到比我更有能力的人。但与此同时,我可以使用指针来了解如何将我们的功能开发与快速错误修复分开。

目前,我们有3个基本环境:单独的开发人员环境,登台和生产。每个环境都有自己的本地Mercurial仓库。一个bitbucket repo充当每个环境推送和拉出的主仓库。

问题在于有人正在处理尚未完成的代码,但需要提交需要快速部署的快速错误修复。如果开发人员已经对未完成的代码进行了更改并提交了快速错误修复并进行了推送,则所有代码都会进入bitbucket repo。

根据我迄今为止所研究的内容,我可以使用开发bitbucket repo(用于较慢的开发)和“稳定”的bitbucket repo(用于需要立即执行的修复)

在这种情况下,在我们的开发机器上,我们在本地dev repo中执行大部分较慢的dev代码,这些代码将从本地稳定的repo中克隆。当我们想要共享未完成的代码时,我们会推送/拉到bitbucket dev。其他开发人员可以从他们的本地开发/推送到bitbucket开发,以保持他们的本地开发环境同步或合并代码。

当我们准备将其投入生产时,我们会将代码从我们的开发环境推送到bitbucket main,然后将其拉入分段进行测试。如果它看起来不错,我们会把bitbucket主要回购投入生产。之后,我们将bitbucket主要仓库拉入我们的个人稳定仓库以保持同步,然后从个人主仓库进入个人开发仓库以实现同步。

如果我们在开发环境中处于不完整代码的中间,但必须快速修复一些错误。我们在我们的个人稳定回购中做错误修复,应该没有任何不完整的代码,将本地回购推送到bitbucket稳定,然后将其投入生产。然后我们将bitbucket稳定地放入我们的个人开发环境中,以使其与生产同步,但仍然保留我们未完成的代码。

感觉有一种更简单的方式,我不理解。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:2)

  

问题在于有人正在处理尚未完成的代码,但需要提交需要快速部署的快速错误修复。

这是一个使用过的工作流程和(缺失)管理的问题,抱歉。我看到当前状态至少有3个弱点

  • (不相关)为什么3个repos而不是带有特殊命名分支的单个repo?
  • 为什么,在切换任务工作方式时,MQ extension没有被用作强制性工具?
  • 为什么所有开发都在默认分支中发生,并且不使用命名分支?

我,因为PM在这种情况下会评估两种可能的方法并在测试任何(或两者的组合)后实施

  • 单分支模式的MQ扩展必须用于任何 WIP。只有完成和测试的更改才能转换为变更集(因此,可以推送到公共场所)
  • 单分支模式替换为“每个任务分支”工作流程(任何任务 - 开发人员仓库中的新命名分支,稍后合并为默认值)和默认推送模式“所有分支”替换为“仅推送指定分支”:仅...-b default如果是单独的回购,-b default -b STAGING -b PROD如果是单个回购,每个目标有单独的分支/ DEVEL,STAGING,PROD /。在-b的情况下,只有选定的分支和来自另一个命名分支的这些分支中的变更集的父项(即合并的分支)将被推送到公共,未完成(并且未合并)的分支将保持在本地