diff
diff est une commande Unix qui permet de comparer deux fichiers et d'en afficher les différences.
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 peut être appliquée avec le programme Unix patch.
Sommaire |
Histoire [modifier]
La 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 [modifier]
GNU diff [modifier]
La version GNU de diff a été écrite par Paul Eggert, Mike Haertel, David Hayes, Richard Stallman et Len Tower. GNU diff est publié sous la licence GNU GPL.
diff peut être utilisé par des outils de fusion de fichiers, par exemple par la préférence merge d'Unison.
L'utilitaire diff est diffusé par le projet GNU dans le paquet Diffutils.
GNU wdiff [modifier]
GNU wdiff[3] est une interface utilisateur pour diff.
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) Martin von Gagern (09-03-2013), « wdiff 1.2.1 released », info-gnu.
Articles connexes [modifier]
Liens 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 renommes et les exceptions ajoutées, les instructions changées, etc.