138 votes

Comment abandonner une fusion hg ?

C'est la première fois que je collabore avec Mercurial. Ma situation :

  • Un autre programmeur a modifié la révision 1 d'un fichier pour remplacer les retraits à 4 espaces par des retraits à 2 espaces. (C'est-à-dire qu'il a changé chaque ligne.) Appelons cela la révision 2, poussée vers le dépôt distant.
  • J'ai apporté des modifications substantielles à la version 1 avec diverses modifications du code dans mon espace de travail local. Je l'appelle la révision 3.
  • J'ai hg pull ed et hg merge d sans avoir une idée claire de ce qui se passe.
  • Les conflits sont innombrables et ne portent pas vraiment sur le fond.

Je regrette vraiment de ne pas avoir modifié mon repo local pour passer à des retraits à 2 espaces avant de fusionner ; la fusion sera alors triviale (je suppose). Mais je n'arrive pas à faire marche arrière. Je pense que je dois hg update -r 3 mais il est dit abort: outstanding uncommitted merges .

Comment puis-je annuler la fusion, modifier l'espacement dans mon dépôt local, et recommencer la fusion ?

141voto

math Points 2127

BTW : si vous revenez simplement sur la fusion que vous avez effectuée et que 3 n'est pas votre numéro de révision, vous pouvez le faire :

hg update -C -r .

130voto

R. Martinho Fernandes Points 96873

Vous pouvez supprimer les modifications non validées avec l'option -C (ou --clean) :

hg update -C -r 3

ATTENTION : Tout ce qui n'a pas été engagé disparaîtra !

Après cela, vous devriez probablement utiliser une sorte d'outil de formatage de code pour effectuer toute l'opération, ou au moins quelques recherches et remplacements avec des expressions régulières. Quelque chose d'aussi simple que de remplacer ce qui correspond à ^____ (utilisez 4 espaces au lieu de caractères de soulignement) avec __ (2 espaces), répété plusieurs fois (à moins que vous n'ayez un code follement imbriqué) devrait fonctionner.

2voto

Grumdrig Points 6233

Apparemment, j'avais juste besoin de hg update -C -r 3 qui écrase mes fichiers locaux en tenant compte de la révision (c'est ce que je croyais). hg update ferait l'affaire ; mais je me suis trompé). Merci pour mon aide !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X