Accueil > Recettes Techniques > Linux > fldiff : un diff graphique

fldiff : un diff graphique

mardi 6 novembre 2007, par Julien Falconnet

La comparaison de fichier devient vite une tache incontournable pour l’administrateur, mais aussi pour le développeur. Quoique très structurés les résultats de diff en mode console sont parfois un peu pénibles à lire. Pourtant, il existe un petit outil très pratique pour comparer de manière très visuelle deux fichiers : fldiff.

Version de travail : v1.1

Présentation

Deux parties : une à gauche pour le premier fichier, une à droite pour le second fichier. Les lignes identiques sont alignée et les lignes modifiées sont coloriées en jaunes, avec éventuellement un décalage pour que les lignes identiques restent toujours en vis à vis. Entre les deux parties on trouve un ascenseur qui rappelle les zone variantes.

Apperçu de fldiff
Vue de l’interface

Extrêmement intuitif, on peut repérer instantanément la moindre variation de virgule.

Attention, il suffit d’un "espace" de différence pour que les lignes soient considérées comme différentes. Ce qui peut poser problème lorsqu’on a seulement remis en forme un code sans avoir fait de vraies modifications. Il existe une option "ignore whitespace" dans le menu Edit->Preference qui permet de régler ce problème.

Syntaxe

Outre la possibilité de choisir les fichiers à comparer grâce au menu de l’interface graphique, on peut les spécifier directement en ligne de commande.

 fldiff {fichier1} {fichier2}

Avec SVN ? Que du bonheur !

Ma principale utilisation de ce génial outil est avec le gestionnaire de version Subversion (SVN). Il permet en effet, de comparer, non pas deux fichiers mais deux versions d’un même fichier géré par svn. Pour cela il suffit de se mettre dans le répertoire de travail où se trouve le fichier et d’appeler :

 fldiff {nom_du_fichier} :{revision1}:{revision2}

ou

fldiff {nom_du_fichier} :{revisioninitiale}

La première syntaxe compare les versions revision1 et revision2 du fichier (par exemple fldiff action.php :21:36) et la seconde version compare la version revisioninitiale et la version courante (par exemple fldiff action.php :36).

Enfin la syntaxe suivante compare la version de travail à la version de référence (utile seulement si vous avez travaillé sur un fichier depuis son dernier update).

 fldiff {fichier}

Par exemple : fldiff action.php.

Références

Le site de référence sur le sujet : http://www.easysw.com/~mike/fldiff/... (enfin il me semble)