2011-06-30 2 views
1

Nous avons un grand site qui exécute CodeIgniter que nous sommes en train de décrire une meilleure configuration de Mercurial que ce que nous avons maintenant. En ce moment, nous pensons qu'avec l'installation de repo suivante, nous allons fusionner plusieurs produits dans un environnement alpha. Une fois qu'il est approuvé par les ventes, il va dans uat pour l'approbation du client.Maintenir l'isolation du produit dans plusieurs référentiels avec Mercurial

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

Notre souci est de savoir comment gérer la situation où product1 et product2 ont tous les deux ont fusionné en alpha et fait à uat, mais product2 doit être retiré de uat parce que le client a trouvé des problèmes qui doivent être résolus, mais product doit encore aller en direct. C'est un problème parce que basé sur notre compréhension de Mercurial, il n'est pas tout à fait construit pour séparer un produit ou supprimer un arbre spécifique de changesets.

Des idées sur la façon dont cela peut être accompli d'une manière simple? Est-ce que Mercurial est la bonne solution ou y a-t-il autre chose que nous devrions examiner? Avez-vous rencontré ce scénario, qu'avez-vous fait?

Mise à jour

J'ai lu sur les signets. Avec eux étant effectué avec des pulls/pousse il possible d'utiliser des signets pour suivre des versions telles que product1 v1.4.21 pour contrôler quelles versions des produits sont inclus dans ces dépôts multiples?

Favoris ne semblent pas comme la meilleure solution, car elle ne permet toujours pas pour moi d'enlever les changesets de product2 dans le référentiel alpha, ne laissant que product1 dans le référentiel alpha.

+0

sont les différents produits dans différents répertoires? ou sont-ils des branches mercurielles différentes? – krupan

+0

différents repos – Webnet

Répondre

0

Je ne suis pas sûr de vous comprendre, mais je pense que vous voulez quelque chose comme this. (Les graphismes de ce post sont dirigés vers Git, mais ils devraient aussi bien fonctionner pour Mercurial.) En bref, vous devez maintenir des branches séparées pour chacun des environnements (alpha, UAT, libéré, correction de bugs, etc). Je suis un peu confus pourquoi vous avez tous les trois produits dans un référentiel. Sont-ils les mêmes, seulement des versions différentes? Utilisez ensuite les révisions étiquetées pour les identifier sur les branches, mais ce serait toujours un référentiel (en fait, une base de code). Sont-ils des produits différents? (Si oui, pourquoi les fusionnez-vous?) Ensuite, vous pouvez utiliser des dépôts séparés pour garder les choses propres.

Questions connexes