Mercurial Diff Merge: quel outil est-ce et comment l'utiliser?
Je suis nouveau sur mercurial, je connais bien TortoiseHG, mais c'est la première fois que je gère un projet dans un environnement linux sans tête. Je fais un hg update
après un push, et j'obtiens cet écran:
La section D'aide dit que c'est vim, Comment puis-je fusionner mon application.
3 réponses
C'est vimdiff. Vous pouvez en apprendre plus à ce sujet en exécutant man vimdiff
.
Cependant, je recommanderais d'utiliser l'outil interne:merge de mercurial. Il va effectuer la fusion et, si un conflit se produit, insérez marqueurs de conflit dans le fichier et vous informer qu'il y avait un conflit. Vous ouvrez ensuite le fichier, résolvez le conflit, supprimez les marqueurs de conflit, marquez le fichier comme résolu, et lorsque tous les fichiers sont nettoyés, vous pouvez valider le résultat de la fusion. Ceci est très similaire à la façon dont subversion gère les conflits. Vous pouvez configurer mercurial interne:fusion par adjonction, à votre ~/.fichier hgrc:
[ui]
merge=internal:merge
L'outil que vous utiliserez pour obtenir la liste des fichiers en conflit et les marquer résolus s'appelle hg resolve
, donc je recommande d'exécuter hg help resolve
pour en savoir plus sur cet outil. Vous pouvez en savoir plus sur la prise en charge de mercurial pour les outils de fusion en exécutant: hg help merge-tools
.
On dirait que vous avez besoin d'aide pour utiliser le module diff de Vim. Voir l'un d'entre eux:
- http://amjith.blogspot.com/2008/08/quick-and-dirty-vimdiff-tutorial.html
- http://www.debianadmin.com/vimdiff-edit-two-or-three-versions-of-a-file-with-vim-and-show-differences.html
Si vous n'êtes pas à l'aise avec Vim, il y a sûrement une option qui vous permet de spécifier votre propre outil de diff préféré, mais je ne sais pas HG, donc je ne peux pas vous dire quelle option vous aurez à modifier.
Le Vim ouvert a trois fichiers diffés, donc je suppose que vous avez rencontré des conflits en faisant le hg update
.
D'après mon expérience, l'outil qui est - de loin - le plus facile à utiliser pour la plupart des gens est kdiff3 (menu intuitif, vue naturelle avec base et les deux conseils ci - dessus et le texte résultant ci-dessous, bons raccourcis clavier-Ctrl-1/Ctrl-2/Ctrl-3 pour choisir l'extrait de première/deuxième/troisième fenêtre, Ctrl-flèches Il suffit d'installer ce programme et de lui donner la plus haute priorité dans la configuration de merge-tools (set
[merge-tools]
kdiff3.priority=1000
).
En général: quel que soit l'outil que vous utilisez, il vous montre versions conflictuelles du fichier et attend que vous créiez la version finale.