2010-03-04 2 views
2

J'envisage un passage de SVN au mercure et ont actuellement une mise en page SVN typique pour le projet Foo:Cross-repository fusionnant dans Mercurial?

Foo 
    trunk 
    branches 
    1.0 
    1.1 

Je peux importer cette structure en Hg en utilisant la commande hg import, la création d'un dépôt séparé pour le tronc et deux branches (en utilisant le commutateur d'importation --config convert.hg.clonebranches=1.)

Maintenant, si un client trouve un bogue dans v1.0 de Foo, comment puis-je appliquer ce correctif aux référentiels 1.1 et aux troncs? Ce sont des copies séparées des anciennes succursales SVN, donc hg merge ne fonctionnera pas, n'est-ce pas? Si je commençais un nouveau projet à partir de zéro sur Hg alors je pourrais utiliser des tags pour les différentes versions et facilement fusionner les changements d'une étiquette à l'autre, mais je n'ai pas ce luxe lors de l'importation de SVN ... ou ai-je raté quelque chose?

+0

Vérifiez ma question et de répondre http://stackoverflow.com/questions/6709365/how-to-move-bugfixes-across-branches-in-dvcs – gavenkoa

Répondre

1

J'aime hg transplant (transplant extension homepage) pour ceci: ceci prendra un commit et le déplacera quelque part. L'option -s vous permettra de le déplacer d'un repo à l'autre.

Vous pouvez également spécifier une fusion à effectuer, ainsi que des révisions uniques, plusieurs révisions ou l'activation d'un «sélecteur de modifications interactif» (quel que soit ce que cela signifie). (Bien que je n'ai pas essayé l'option de fusion entre repos ... mais je sais que spécifier un changeset fonctionne tout simplement bien!)

+1

hg greffe n'est pas un bon choix parce que vous avez le même changer avec deux hash différents. Dans ce cas, il devrait être capable de simplement tirer/pousser entre eux et ensuite fusionner. –

1

Vous devriez pouvoir utiliser la fusion poussée/traction normale pour obtenir les changements d'avant en arrière. Convert est assez intelligent que les parties de 1.0 et 1.1 qui sont identiques seront les mêmes changesets. Alors faites le changement en 1.0 et vous devriez être capable de le tirer en 1.1 et de le fusionner proprement.

Si vous pensez que vous allez allez de 1.1 et 1.0 en principal, juste hg update à un changeset que vous connaissez est en 1.0 avant faire le changement, et vous serez en mesure de tirer proprement et que la fusion 1,0 aussi.

Questions connexes