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
Mots-clefs : comparaison, diff, fichiers, Linux et logiciels libres
Ça a l’air sympa et plus efficace que la solution que j’utilisais, elle consistait en un script bash simple mais peu performant sur les gros dossiers.
Je l’avais pris ici : http://nicofo.tuxfamily.org
Pour les comparaisons (fichiers et dossiers) en graphique j’utilise « meld », qui permet même de faire des comparaisons triples.
Merci, je vais regarder ça, surtout que je ne sais pas si c’est ma Jaunty qui manifeste des signes de fatigue, mais ces derniers jours, à chaque fois que je testais hdiff, une erreur était retournée, comme si diff avait un problème, alors que ça allait rondement (selon mes souvenirs) quand mon installation était plus jeune. Je vérifierai une fois rendue sur Lucid. En attendant, je vais tester Meld et ensuite, je mettrai ma news à jour sur Ishimaru-Design pour ceux qui veulent connaître les changements entre deux versions d’un de mes styles.
Je viens de l’installer, mais il ne se lance pas, même après un redémarrage du système !
Il faut vraiment que je réinstalle Ubuntu. Ça fait au dessus d’un mois que je veux upgrader vers Lucid, mais j’ai ces commandes à finir avant.
[...] et il y a quelques heures, j’ai installé Meld, dont mathedit m’en a parlé suite à mon billet sur l’utilisation de hdiff, afin de le tester pour ainsi proposer une solution plus intuitive pour les Linuxiens qui veulent [...]