Exemple introductif
Soient les deux fichiers texte suivants (exemple tiré du manuel d'administration fonctionnelle de SCENARIclient (4.1)) :
v1.txt :
1Pour envoyer un message de maintenance aux utilisateurs connectés, sélectionnez le message adapté dans la liste déroulante, puis cliquez sur "Envoyer".
2Les utilisateurs le reçoivent alors dans l'interface de l'application pendant 30 secondes.
3Si, avant la fin du décompte, aucun utilisateur ne s'oppose à l'opération de maintenance, le message "Aucun utilisateur ne s'oppose à l'opération de maintenance" s'affiche.
v2.txt :
1Pour envoyer un message de maintenance aux utilisateurs connectés, sélectionnez le message adapté dans la liste déroulante, puis cliquez sur "Envoyer".
2Un décompte de 30 secondes s'enclenche alors dans l'onglet "Administration avancée".
3Les utilisateurs reçoivent le message dans l'interface de l'application.
4Si, avant la fin du décompte, aucun utilisateur ne s'oppose à l'opération de maintenance, le message "Aucun utilisateur ne s'oppose à l'opération de maintenance" s'affiche.
La commande Unix diff (Hunt et MacIlroy), 1976[1]) calcule les différences entre ces deux fichiers en termes de lignes ajoutées (n'existant pas dans v1) et supprimées (n'existant pas dans v2). Le résultat s'affiche de la manière suivante dans le terminal (format unifié) :
diff -u v1.txt v2.txt
--- v1.txt 2015-09-15 12:22:02.448751522 +0200
+++ v2.txt 2015-09-15 12:22:42.352949397 +0200
@@ -1,3 +1,4 @@
Pour envoyer un message de maintenance aux utilisateurs connectés, sélectionnez le message adapté dans la liste déroulante, puis cliquez sur "Envoyer".
-Les utilisateurs le reçoivent alors dans l'interface de l'application pendant 30 secondes.
+Un décompte de 30 secondes s'enclenche alors dans l'onglet "Administration avancée".
+Les utilisateurs reçoivent le message dans l'interface de l'application.
Si, avant la fin du décompte, aucun utilisateur ne s'oppose à l'opération de maintenance, le message "Aucun utilisateur ne s'oppose à l'opération de maintenance" s'affiche
Diff orienté lignes
Les deux figures ci-dessous sont des exemples de formes différentielles pouvant être produites à partir du résultat de diff. Les lignes ajoutées (resp. supprimées) sont colorées en bleu (resp. en gris). Dans la première figure, les deux versions sont "fusionnées" (les lignes sont également barrées ou soulignées pour accentuer l'affichage des différences) tandis que dans la seconde, elle sont affichées face à face.


Diff orienté caractères
En analysant le contenu, on remarque que la troisième ligne de v2 est en fait une évolution de la deuxième ligne de v1, dans laquelle les chaînes "le", "alors" et "pendant 30 secondes" ont été supprimées, et la chaîne "le message" a été ajoutée. Les deux formes différentielles précédentes créent donc une certaine redondance pour les parties communes de ces deux lignes. Pour améliorer ces formes, la granularité d'expression des différences doit pouvoir être plus fine que la ligne, c'est-à-dire au niveau du caractère, telle que dans la forme ci-dessous :
En revanche, l'indication des caractères ajoutés et supprimés au niveau d'une ligne ont un impact sur sa lisibilité. En effet, la ligne acquiert plusieurs niveaux de lecture et ne peut plus se lire tout à fait linéairement. La deuxième forme ci-dessous permet d'éviter cette difficulté, en dupliquant la ligne sur deux colonnes, avec en sur-ajout les caractères propres à chaque version (ce qui minore la redondance). Le fond coloré indique explicitement que cette ligne a été modifiée :
Autres visualisations
Si les formes différentielles précédentes sont les plus courantes, il existe d'autres façons de visualiser les différences entre versions. Citons par exemple les travaux de Chevalier et al. (2010[2]), qui proposent l'utilisation de transitions animées pour naviguer dans l'historique d'un document (une vidéo de démonstration de leur logiciel Diffamation est accessible à l'adresse : https://www.youtube.com/watch?v=17lz5nt5_jg). Cette approche du replay est une alternative intéressante aux visualisations statiques de diff. Elle peut en effet sembler plus naturelle et confortable pour l'utilisateur en phase exploratoire, l'animation donnant l'impression de reproduire en temps réel les gestes d'écriture ayant conduit aux modifications. Cependant, l'animation ne nous semble pas adaptée pour un contexte de relecture, qui requiert la synopsis spatiale du texte et des modifications.