diff
diff est une commande Unix qui permet de comparer deux fichiers et d’en afficher les différences.
Développé par | Laboratoires Bell et Douglas McIlroy |
---|---|
Formats lus | Fichier texte |
Formats écrits | Unidiff (en) |
Type |
Programme informatique Utilitaire UNIX (d) Comparaison de fichiers |
Son utilisation typique consiste à calculer les changements entre une version d’un fichier et une version plus ancienne du même fichier. Diff affiche les changements ligne par ligne pour un fichier texte, mais ne gère pas toujours de façon conviviale la différence de Byte Order Mark. Les implémentations modernes prennent également en compte les fichiers binaires[1]. La sortie est appelée un "diff", un patch, ou une rustine puisque la sortie permet de transformer le premier fichier binaire en le second par le programme Unix patch.
Histoire
modifierLa première version de diff a été livrée avec la 5e édition d’Unix en 1974, elle avait été écrite par Douglas McIlroy. L’article de recherche a été publié en 1976 et coécrit avec James W. Hunt qui a développé un prototype initial de la commande[2]. Diff peut être utilisé avec ed pour créer des scripts d’édition automatique.
En 1985, Larry Wall a écrit un utilitaire séparé, patch, qui généralise et étend la possibilité de modifier des fichiers à partir du résultat de diff.
Implémentation GNU
modifierGNU diff
modifierLa version du projet GNU a été écrite par Paul Eggert, Mike Haertel, David Hayes, Richard Stallman et Len Tower. Ce programme peut être utilisé par des outils de fusion de fichiers, par exemple par la préférence merge d’Unison.
GNU diff est distribué dans le paquet Diffutils, sous licence GPL.
GNU wdiff
modifierGNU wdiff est une interface utilisateur à diff[3] qui permet de comparer deux fichiers sur la base de « mots » et non plus seulement sur la base de leurs caractères.
Notes et références
modifier- MacKenzie et al. "Binary Files and Forcing Text Comparison" in Comparing and Merging Files with GNU Diff and Patch. Downloaded 28 April 2007. [1]
- An Algorithm for Differential File Comparison James W. Hunt & M. Douglas McIlroy
- (en) « GNU wdiff », sur directory.fsf.org, FSF,
Articles connexes
modifierLiens externes
modifier- (en) GNU Diffutils
- (en) GNU wdiff
- (en) diffj un logiciel permettant de comparer deux fichiers de code source Java et d’en afficher les différences. Lors de la comparaison, les espaces et commentaires sont ignorés et la sortie est spécifique à la sémantique de Java et affiche les méthodes changées, les paramètres renommés et les exceptions ajoutées, les instructions changées, etc.