我继承了一个基本网站的 Mercurial 系统,但我是 Mercurial 的新手,在我们找到比我更有能力的人之前,我只是临时的网站保姆。但与此同时,我可以使用指针来说明我们如何将功能开发与快速错误修复分开。
目前,我们有 3 个基本环境:个人开发环境、登台和生产环境。每个环境都有自己的本地 Mercurial 存储库。单个 bitbucket 存储库充当每个环境推送和提取的主存储库。
问题是当有人正在处理未完成的代码但需要提交需要快速部署的快速错误修复时。如果开发人员已提交对未完成代码的更改并提交快速错误修复并进行推送,则所有代码都会进入 bitbucket 存储库。
从我迄今为止的研究来看,我可以通过一个开发 bitbucket 存储库(用于较慢的开发)和一个“稳定”的 bitbucket 存储库(用于现在需要进行的修复)来解决问题
在这种情况下,在我们的开发机器上,我们会在本地开发存储库中执行大部分较慢的开发代码,这些代码将从本地稳定存储库克隆。当我们想要共享未完成的代码时,我们会推送/拉取到 bitbucket dev。其他开发人员可以从他们的本地开发人员推/拉到 bitbucket 开发人员,以保持他们的本地开发环境同步或合并代码。
当我们准备好将其推入生产环境时,我们会将代码从我们的开发环境推入 bitbucket main,然后将其拉入 staging 进行测试。如果它看起来不错,我们会将 bitbucket 主存储库投入生产。稍后,我们会将 bitbucket 主仓库拉入我们的个人稳定仓库以保持同步,然后从个人主仓库拉入个人开发仓库以使其同步。
如果我们的开发环境中的代码不完整,但必须快速修复一些错误。我们会在我们的个人稳定存储库中进行错误修复,其中应该没有任何不完整的代码,将本地存储库推送到 bitbucket stable,然后将其投入生产。然后我们会将 bitbucket stable 引入我们的个人开发环境,以使其与生产环境保持同步,但仍保留我们未完成的代码。
感觉有一种更简单的方法可以做到这一点,我不明白。任何建议将不胜感激。