我们有一个运行CodeIgniter的大型网站,我们目前正在概述更好的Mercurial设置,然后我们现在拥有它。我们现在的想法是,通过以下repo设置,我们将多个产品合并到alpha
环境中。一旦获得销售批准,它将进入uat
以获得客户批准。
[LIVE]
|
[UAT]
|
[ALPHA]
/ | \
[PRODUCT1] [PRODUCT2] [PRODUCT3]
我们关注的是如何处理product1
和product2
已合并到alpha
并将其转移到uat
的情况,但product2
需要从uat
中移除,因为客户发现了需要解决的问题,但product
仍然需要现场直播。这是一个问题,因为根据我们对Mercurial的理解,它并不是为了拆分产品或删除特定的变更集树而构建的。
关于如何以简单的方式实现这一目标的任何想法? Mercurial是正确的解决方案还是我们应该研究其他什么?您是否遇到过这种情况,您做了什么?
更新
我一直在阅读书签。使用它们进行拉/推可以使用书签来跟踪product1 v1.4.21
等版本,以控制这些多个存储库中包含哪些版本的产品?
书签似乎不是最佳解决方案,因为它仍然不允许我从product2
存储库中的alpha
中删除更改集,只留下product1
alpha
存储库。
答案 0 :(得分:0)
我不确定我理解你,但我认为你想要像this这样的东西。 (该帖子中的图片是针对Git的,但它们也应该适用于Mercurial。)简而言之,您将为每个环境维护单独的分支(alpha,UAT,发布,显示停止错误修复,等)。
我有点困惑为什么你把所有三种产品放在一个存储库中。它们是相同的,只是不同的版本?然后使用标记的修订版在分支上标识它们,但它仍然是一个存储库(实际上是一个代码库)。它们是不同的产品吗? (如果是这样,为什么要合并它们?)然后你可以使用单独的存储库来保持清洁。