L'auteur partage son expérience de migration entre deux instances GitLab-CI, où il a dû comparer des arborescences de fichiers pour valider des artefacts. Il explique que l'outil diff permet de comparer des dossiers entiers, à condition que les fichiers soient en texte, ce qui était le cas pour ses bibliothèques Flutter. Il détaille la commande utilisée pour générer un fichier de différences entre deux versions.
Pour rendre cette comparaison plus lisible, il recommande l'outil riff, écrit en Rust, qui améliore la présentation des résultats de diff avec une coloration et une mise en forme visuelle. Il mentionne les méthodes d'installation et une attention particulière à porter si l'on utilise asdf, car le plugin associé n'est plus maintenu.
Enfin, il évoque un cas où riff a révélé des différences dans des fichiers XML, dues à un simple réordonnancement des blocs, sans impact sur la structure globale. Cela lui a permis de valider rapidement la cohérence des fichiers après migration.
Astuce pour obtenir une revue de code par IA en 10 secondes : ajoutez ".diff" à la fin de l'URL d'une PR GitHub, copiez le diff et collez-le dans un LLM comme Claude ou ChatGPT pour une première analyse rapide. Cela permet de détecter des problèmes évidents et d'améliorer le code avant une revue humaine, réduisant ainsi les temps de cycle et facilitant le travail des réviseurs. Une méthode simple et efficace sans besoin d'outils spécifiques.
Git affiche constamment des diffs – mais parfois, ils semblent étranges.
Pourquoi ?
- Git ne comprend pas les intentions : un renommage (
git mv old.py new.py) est traité comme une suppression + ajout. - L’algorithme de diff compare simplement deux versions et essaie de résumer les changements de façon lisible… mais pas toujours avec succès.
Astuce :
- Git propose plusieurs algorithmes de diff. Par exemple, pour mieux gérer les réorganisations de code :
git diff --histogram
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Une commande similaire à diff, mais qui affiche le contenu des 2 fichiers à comparer sur 2 colonnes (via sebsauvage)
Tout est dans le titre (via sebsauvage)
Tout est dans le titre
Un outil permettant de faire un "diff" sur tout type de fichier
Ces utilitaires sont écrits en Rust, et permettent de :
- mettre de la coloration syntaxique dans les diff (Delta)
- afficher l'espace occupé par répertoire (Dust) - inspiré par "du"
- lancer des commandes dès qu'un fichier est modifié (Watchexec)
Tout est dans le titre
Les astuces :
- Empêcher Nginx de rajouter le port quand on redirige une URI vers une autre URI
- Afficher/surveiller les stats memcache
- Modifier à la volée un paramètre php (CLI)
- Désactiver les demandes de notifications dans Firefox
- Créer une archive tar.gz au travers d’SSH avec une barre de progression
- Vérifier la liste des plugins activés dans WordPress
- Faire un diff de fichier au travers d’SSH
- Importer un dump MySQL/MariaDB au travers d’SSH en une seule commande
- Valider la syntaxe YAML d’un playbook Ansible avant de l’exécuter
- Lancer des commandes bash depuis l’invite de commandes MySQL
Tout est dans le titre
Une version "graphique" de diff
L'auteur met surtout l'accent sur git, mais l'essentiel de son propos s'applique aussi bien à d'autres DVCS et autres VCS
Meld permet d'analyser les différences entre fichiers, dossiers et répertoires...