J'ai raté une fusion. Je voudrais revenir en arrière puis réessayer.
Existe-t-il un moyen d'annuler une fusion avant qu'elle ne soit validée?
hg revert
ne fait pas ce que j'aimerais, il ne fait que restaurer le texte des fichiers. Mercurial abandonne ma deuxième tentative de fusion et se plaint que la fusion d'origine n'est toujours pas engagée.
Existe-t-il un moyen d'annuler une fusion après un hg merge
commande mais avant qu'elle ne soit validée?
hg update -C <one of the two merge changesets>
Après avoir fait hg merge
, mais avant hg commit
, votre copie de travail a deux parents: le premier parent est l'ensemble de modifications que vous aviez mis à jour avant la fusion et le deuxième parent est l'ensemble de modifications avec lequel vous fusionnez. Mercurial ne vous laissera pas faire hg merge
encore une fois tant que votre copie de travail a deux parents.
Vous avez deux options sur la façon de procéder:
Si vous souhaitez annuler la fusion et revenir à votre point de départ, faites
hg update -C .
Cela mettra à jour la copie de travail pour correspondre au premier parent: le .
désigne toujours le premier parent de la copie de travail.
Si vous voulez re-fusionner certains fichiers alors faites
hg resolve fileA fileB
Cela relancera les outils de fusion comme lorsque vous l'avez fait hg merge
. La commande de résolution est bonne si vous découvrez à hg merge
- fois que vos outils de fusion sont mal configurés: corrigez la configuration et exécutez hg resolve --all
. Tu peux courir hg resolve
autant de fois que vous le souhaitez jusqu'à ce que vous soyez satisfait de la fusion.