Skip to content

Meld et Mercurial

11 juillet 2017

Meld est un équivalent graphique de `diff` : il permet de faire des différences entre des fichiers de manière plus visuelle. Mercurial peut utiliser `meld` plutôt que l’outil par défaut lorsqu’il faut afficher des différences entre les fichiers du dépôt local et les fichier du dépôt distant.

Mise en œuvre

Il suffit d’activer l’extension Extdiff fournie avec Mercurial. Cela se fait en ajoutant les lignes suivantes au fichier ~/.hgrc (ou au fichier .hg/hgrc si on souhaite limiter la modification à un répertoire versionné) :

[extensions]
hgext.extdiff =

[extdiff]
cmd.meld =

Différences sur un fichier

Supposons cette modification d’un dépôt :

$ hg diff
diff -r 1915567d21b2 jours.py
--- a/jours.py	Sat Jul 08 15:37:19 2017 +0200
+++ b/jours.py	Sat Jul 08 15:37:59 2017 +0200
@@ -1,12 +1,10 @@
 """Module des jours"""
 
-# Trop simple, faire une fabrique abstraite ?
-
 JOURS = ("lundi",
     "mardi",
     "mercredi",
-    "jedi",
+    "jeudi",
     "vendredi",
     "samedi",
-    "dimenche"
+    "dimanche"
     )

En utilisant la commande `hg meld`, une fenêtre de `meld` s’ouvre, montrant l’état dans le dépôt à gauche et l’état du fichier sur le disque à droite :

Cliquer sur les flèches permet de copier le contenu d’un côté à l’autre automatiquement. Il est aussi possible de modifier le contenu directement.

Différences sur plusieurs fichiers

Avec les modifications suivantes par rapport au dernier commit :

$ hg stat
M annees.py
A siecles.py
R heures.py

Lorsque plusieurs fichiers sont modifiés, `hg meld` affiche un premier panneau permettant de voir les fichiers modifiés (en bleu), ajoutés (en vert), absents (grisé et rayé). En double-cliquant sur un des fichiers, un nouvel onglet s’ouvre, affichant la vue détaillée des différences entre des deux fichiers.

Visualisation de conflits

Si `meld` est disponible, Mercurial s’en servira aussi pour la résolution des conflits.
La partie à gauche est l’état du dépôt local, la partie à droite l’état du dépôt distant et la partie centrale l’ancêtre commun au deux fichiers.

Comme dans le cas précédent, il est possible de modifier les fichiers dans `meld` pour résoudre les conflits.

Versions

Cet article a été fait avec meld, version 3.16.4 et mercurial version 4.0. Il a aussi été validé avec meld, version 1.8.4 et mercurial version 2.8.2.

L’image d’en-tête est une superposition des deux logos (Meld et Mercurial), réalisée avec The Gimp.

Publicités

From → Python

Laisser un commentaire

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :