Сохранение изоляции продукта в нескольких хранилищах с помощью Mercurial - PullRequest
1 голос
/ 30 июня 2011

У нас есть большой сайт, на котором работает CodeIgniter, который в настоящее время находится в процессе наметки лучшей настройки Mercurial, чем то, что мы имеем сейчас.Сейчас мы думаем, что с помощью следующей настройки репо мы объединим несколько продуктов в среду 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.

1 Ответ

0 голосов
/ 30 июня 2011

Я не уверен, что понимаю вас, но я думаю, что вы хотите что-то вроде это . (Иллюстрации в этом посте направлены на Git, но они также должны отлично работать и для Mercurial.) Короче говоря, вы должны поддерживать отдельные ветки для каждой из сред (альфа, UAT, выпущенные, исправление ошибок с остановкой шоу, и т.д.).

Я немного сбит с толку, почему у вас есть все три продукта в одном хранилище. Они одинаковые, просто разные версии? Затем используйте помеченные ревизии, чтобы идентифицировать их в ветвях, но это все равно будет один репозиторий (на самом деле, одна база кода). Это разные продукты? (Если так, почему вы их объединяете?) Тогда вы можете использовать отдельные репозитории, чтобы поддерживать чистоту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...