diff

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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.

Histoire[modifier | modifier le code]

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 | modifier le code]

GNU diff[modifier | modifier le code]

La 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[modifier | modifier le code]

GNU wdiff est une interface utilisateur pour diff[3].

Notes et références[modifier | modifier le code]

  1. MacKenzie et al. "Binary Files and Forcing Text Comparison" in Comparing and Merging Files with GNU Diff and Patch. Downloaded 28 April 2007. [1]
  2. An Algorithm for Differential File Comparison James W. Hunt & M. Douglas McIlroy
  3. (en) « GNU wdiff », sur directory.fsf.org, FSF,‎ 14 avril 2014

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

  • (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.