我们有一个网络应用程序,我们有几个企业客户。我们最近决定将其作为 SaaS 应用程序提供并遵循精益方法(与我们的企业产品并行)。这意味着我们正在进行可能无法投入生产的实验。
在我们精简之前,我们对以下分支策略感到满意(我相信这是非常标准的):
- 大师- 永远稳定
- dev - 通常不稳定(功能分支从 dev 中截断,以便新功能进入下一个主要版本)
- major_release_x - live(在 dev 合并到 master 后切断 master,这是修复错误并合并回 master 和 dev 的地方)
现在,除了上述内容之外,我们还有以下内容,但效果并不好:
- lea_release_branch - live(切断major_release_x并包含实验)
- Experiment_x - 切断major_release_x(这是我们将功能组合在一起然后将其合并到lean_release_branch的地方)
我们现在的情况是,我们需要按照精益方法的要求快速且经常地发布,当我们获得对任意事物的可靠反馈时,我们需要将其生产化并尽快发布(离开lea_release_branch)。
问题是我们不能从dev创建一个特性分支(因为它很可能是不稳定的)并且我们不能从lea_release_branch创建一个特性分支,原因有两个:
- 它已被实验代码污染,因此此更改/功能将无法返回master
- 精益发布分支总是需要准备好发布,所以如果有需要修复和发布的关键问题,我们不能忙于对其进行测试和修复(在将更改/功能合并到其中之后)
有人知道我们设置的更好策略吗?