J'essaie de contribuer à un projet qui utilise Subversion. J'ai utilisé Mercurial et son extension hgsubversion pour cloner le repo. Mon travail se déroule sur une branche de fonctionnalité.Comment gérer les fusions avec hgsubversion?
Comment maintenir la branche de fonctionnalité à jour avec ce qui se passe sur la branche par défaut (hg speak), le tronc (svn speak)?
J'ai donc utilisé hg up feature
pour mettre à jour la branche de fonctionnalité, puis hg pull
qui m'a donné des changesets sur la branche par défaut. Donc je l'ai fait hg merge default
, le commit la fusion, puis essayé hg push
pour envoyer mes changesets à Subversion. Et Mercurial a déclaré: "Désolé, ne peut pas trouver svn parent d'une révision de fusion."
Merci, Ryan. Mais avec votre suggestion, mon travail n'apparaîtra pas en amont (c'est-à-dire dans Subversion). Je voulais pouvoir m'engager dans la branche Subversion.En fait, je peux m'engager dans la branche Subversion, mais je ne peux pas fusionner à partir du tronc dans Mercurial. (Et comment Subversion n'a "que nominalement" des branches? Il semble que le support pour fusionner des branches dans Subversion soit plus faible que dans Mercurial, mais pas trop terrible.) Au moins, je peux séparer une branche du tronc Le problème vient quand je veux réintégrer la branche dans le coffre.) – hibbelig
Je n'ai pas été clair dans ma suggestion, car rien dans ce texte ne vous empêche de pousser en amont. Je suggère simplement qu'une fois que vous avez modifié les changesets, vous vous limitez à une seule branche nommée, car la fusion normale entre les branches mercurielles vous empêcherait de pousser à la subversion (comme vous l'avez vu). Gardez tous vos csets sur la même branche nommée en territoire mercurial, en utilisant plusieurs clones si vous voulez des pistes de développement séparées, et vous devriez être très bien. –
Merci encore une fois, Ryan. Comment puis-je travailler avec plusieurs branches * Subversion *, alors? Veuillez noter que j'ai fait 'hg merge' de deux branches existant dans Subversion, puis j'ai voulu ramener la fusion à Subversion. Pousser la fusion a échoué avec le message d'erreur ci-dessus. Si j'avais fait la même fusion sur le côté Subversion, la fusion serait arrivée intacte du côté de Mercurial (après 'hg pull'). – hibbelig