使用 Mercurial 在多个存储库中维护产品隔离

发布于 2024-11-17 22:44:52 字数 982 浏览 0 评论 0原文

我们有一个运行 CodeIgniter 的大型站点,目前我们正在概述比我们现在拥有的更好的 Mercurial 设置。我们现在的想法是,通过以下存储库设置,我们将把多个产品合并到 alpha 环境中。一旦获得销售部门的批准,它将进入 uat 供客户批准。

                 [LIVE]
                   |
                 [UAT]
                   |
                [ALPHA]
          /        |        \
[PRODUCT1]     [PRODUCT2]    [PRODUCT3]

我们关心的是如何处理 product1product2 都在 alpha 中合并并进入 uat 的情况,但 product2 需要从 uat 中删除,因为客户发现了需要解决的问题,但 product 仍需要上线。这是一个问题,因为根据我们对 Mercurial 的理解,它并不是为了拆分产品或删除特定的变更集树而构建的。

关于如何以简单的方式实现这一点有什么想法吗? Mercurial 是正确的解决方案还是我们还应该研究其他内容?你遇到过这种情况吗,你是怎么做的呢?

更新

我一直在阅读书签。通过拉/推来携带它们,可以使用书签来跟踪诸如 product1 v1.4.21 之类的版本,以控制这些多个存储库中包含哪些版本的产品?

书签似乎不是最好的解决方案,因为它仍然不允许我从 alpha 存储库中的 product2 中删除变更集,只留下 product1alpha 存储库中。

We have a large site that runs CodeIgniter that we're currently in the process of outlining a better Mercurial setup then what we have now. Our thinking right now is that with the following repo setup we will merge multiple products into an alpha environment. Once it's approved by sales it'll go into uat for customer approval.

                 [LIVE]
                   |
                 [UAT]
                   |
                [ALPHA]
          /        |        \
[PRODUCT1]     [PRODUCT2]    [PRODUCT3]

Our concern is how to handle the situation where product1 and product2 have both merged in alpha and made it to uat, but product2 needs to be removed from uat because the customer has found issues that need to be resolved, but product still needs to go LIVE. This is a problem because based on our understanding of Mercurial it's not quite built to split off a product or remove a specific tree of changesets.

Any ideas on how this can be accomplished in a simple manner? Is Mercurial the right solution or is there something else we should look into? Have you run into this scenario, what did you do?

Update

I've been reading up on Bookmarks. With them being carried with pulls/pushes it possible to use Bookmarks to track versions such as product1 v1.4.21 to control which versions of products are included within these multiple repositories?

Bookmarks don't seem like the best solution, because it still doesn't allow for me to remove the changesets from product2 within the alpha repository, leaving only product1 within the alpha repository.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半步萧音过轻尘 2024-11-24 22:44:52

我不确定我是否理解您的意思,但我认为您想要类似 this< /a>. (该文章中的图形是针对 Git 的,但它们也应该适用于 Mercurial。)简而言之,您将为每个环境维护单独的分支(alpha、UAT、已发布、停止显示错误修复、 ETC)。

我有点困惑为什么你在一个存储库中拥有所有三种产品。它们是相同的,只是版本不同吗?然后使用标记的修订版本来识别分支上的它们,但它仍然是一个存储库(实际上,一个代码库)。它们是不同的产品吗? (如果是这样,为什么要合并它们?)然后您可以使用单独的存储库来保持干净。

I'm not sure I understand you, but I think you want something like this. (The graphics in that post are directed towards Git, but they should work just fine for Mercurial as well.) In short, you'd maintain separate branches for each of the environments (alpha, UAT, released, show-stopping bug fixing, etc).

I'm kind of confused why you have all three products in one repository. Are they the same, just different versions? Then use tagged revisions to identify them on the branches, but it would still be one repository (indeed, one code base). Are they different products? (If so, why are you merging them?) Then you can use separate repositories to keep things clean.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文