En voulant écrire ma news annonçant la mise en ligne de la nouvelle version de mes styles phpBB3, j’ai voulu donner le lien de la page de FluxBB.fr sur l’utilisation de WinMerge et hdiff. Or, ils sont en train de migrer et cette page n’est plus disponible, mais par contre, à l’heure où j’écris ces lignes, la page est encore en cache sur Google. J’en profite donc pour écrire ce billet afin de garder une page explicative à porter de main, ce qui sera autant utile à moi qu’à d’autres Linux-users non-familiers avec Perl qui veulent mettre à jour leur forum ou style sans se péter la yeule, en bon Québécois.
Préparer le terrain
Commencez par aller télécharger le script sur ce lien
Hdiff est à exécuter où vous le voulez.
Si votre hébergement vous permet un accès en ssh, vous pouvez exécuter le script sur votre site. Sinon, vous pouvez le faire en local.
Pour cela, sous Linux (ou Windows, avec Cygwin ou ActivePerl), décompressez d’abord les deux dossiers à comparer si besoin :
unzip dossier1.zip
puis
unzip dossier2.zip
Un petit coup de ls -l vous indiquera que vos deux dossiers sont bien décompressés.
caroline@caroline-desktop:~$ ls -l | grep dossier
drwxrwxrwx 6 caroline caroline 4096 2010-07-05 05:31 dossier1
-rw-r--r-- 1 caroline caroline 1198101 2010-07-05 05:34 dossier1.zip
drwxrwxrwx 6 caroline caroline 4096 2010-07-05 05:30 dossier2
-rw-r--r-- 1 caroline caroline 1103539 2010-07-05 05:34 dossier2.zip
Maintenant, exécutez hdiff récursivement comme suit :
~/hdiff -r -o hdiff-dossier1_to_dossier2.html dossier1 dossier2
Si hdiff et vos fichiers ne sont pas dans le dossier racine de votre /home, indiquer le chemin relatif du script à partir de la racine du dossier personnel ! Ainsi, si hdiff et vos dossiers sont situés dans le dossier test qui se trouve à l’intérieur de /home/toto, vous devez donc faire comme ceci :
~/test/hdiff -r -o hdiff-dossier1_to_dossier2.html dossier1 dossier2
Ce n’est pas obligatoire de mettre les noms exacts des dossiers pour le nom du fichier généré, du moment que vous pouvez vous y retrouver avec les versions.
Sinon, je suis toujours ouverte à une proposition d’un soft graphique pour Linux qui fait la comparison récursive du code de chacun des fichiers d’un dossier, et non juste soit un seul fichier ou juste la liste des fichiers. Si quelqu’un en connaît un qui permet de faire une chose similaire à ce que fait WinMerge, je suis ouverte, car c’est vrai que c’est pas évident pour quelqu’un qui n’est pas familier avec les scripts Perl.
Sources : FluxBB.fr