2012-06-13 5 views
1

Je dois faire un point dans la branche du temps, lorsque nous publions une nouvelle version.Mercurial: Comment faire une branche par version

J'ai donc une branche par défaut pour tous les développements, et V1, V2, etc. branche chaque fois qu'une nouvelle version est faite sur un serveur. Donc, si j'ai une branche de développement par défaut. V1 est sur le serveur Live. V2 est sur le serveur de test.

Comment puis-je gérer les scénarios suivants:

  • Un bug se trouve dans V1, et le changement doivent aller dans V1, V2, et par défaut?

  • V2 est faite à un moment donné et va au serveur de test, développement continu avec plusieurs fonctionnalités par défaut. Après quelques tests de V2, la fonctionnalité n'était pas complète et certains des changesets par défaut, devraient être fusionnés en V2 - mais pas tous les changesets?

Répondre

5

La méthode habituelle consiste à localiser le changeset qui a introduit le bogue (avant le point de ramification de V1), et engager le correctif comme un enfant de ce changeset. Cela va introduire une nouvelle tête, que vous pouvez ensuite fusionner dans les branches où vous voulez le correctif, dans ce cas V1, V2 et par défaut.

Cette méthode est appelée "daggy fixes".

Alternativement, vous pouvez également le réparer sur une branche (par exemple, par défaut), puis sélectionnez-le sur les autres branches à l'aide de la commande graft. Mais ce n'est pas aussi bien, car le changeset apparaîtra trois fois et pourrait causer des problèmes de fusion si jamais vous fusionniez deux de ces branches ensemble.

Questions connexes