Une des exigences les plus courantes dans le développement de projet est de voir ce qui a changé. Vous pourriez vouloir regarder les différences entre deux révisions du même fichier, ou les différences entre deux fichiers séparés. TortoiseSVN fournit un outil intégré appelé TortoiseMerge pour voir les différences dans les fichiers texte. Pour voir les différences dans les fichiers image, TortoiseSVN a aussi un outil appelé TortoiseIDiff. Bien sûr, vous pouvez utiliser votre propre programme de comparaison favori si vous le souhaitez.
Si vous voulez voir quels changements vous avez fait dans votre copie de travail, utilisez juste le menu contextuel de l'explorateur et choisissez → .
Si vous voulez voir ce qui a changé sur le tronc (si vous travaillez sur une branche) ou sur une branche spécifique (si vous travaillez sur le tronc), vous pouvez utiliser le menu contextuel de l'explorateur. Maintenez juste la touche Maj tandis que vous faites un clic droit sur le fichier. Sélectionnez alors → . Dans la boîte de dialogue suivante, spécifiez l'URL dans le référentiel avec laquelle vous voulez comparer votre fichier local.
Vous pouvez aussi utiliser l'explorateur de référentiel et sélectionner deux arborescences à comparer, deux étiquettes peut-être, ou une branche/étiquette et le tronc. Le menu contextuel vous permet là de les comparer en utilisant . Plus d'informations dans la section intitulée « Comparer des répertoires ».
Si vous voulez voir les différences entre une révision particulière et votre copie de travail, utilisez la boîte de dialogue de Journal de révision, sélectionnez la révision qui vous intéresse, puis choisissez dans le menu contextuel.
Si vous voulez voir la différence entre la dernière révision et votre copie active, en supposant que la copie active n'ait pas été modifiée, faites simplement un clic droit sur le fichier. Ensuite sélectionnez → . Ceci calculera les différences entre la révision avant la date de dernière Livraison (comme sauvegardé dans votre copie active) et la BASE active. Ceci vous montre la denière modification effectuée sur ce fichier et qui l'a amené à l'état dans lequel vous le voyez maintenant dans votre copie active. Ceci ne va pas montrer les modifications ultérieures à votre copie active.
Si vous voulez voir les différences entre deux révisions déjà livrées, utilisez la boîte de dialogue de Journal de révision et sélectionnez les deux révisions que vous voulez comparer (en utilisant le modificateur habituel Ctrl). Puis choisissez à partir du menu contextuel.
Si vous avez fait ceci depuis le journal sur un répertoire, une boîte de dialogue Comparer les révisions apparaît, affichant la liste des fichiers dans ce dossier. Plus d'informations dans la section intitulée « Comparer des répertoires ».
Si vous voulez voir les changements faits à tous les fichiers dans une révision particulière en une vue, vous pouvez utiliser la sortie en mode Diff-Unifié (format de patch GNU). Cela montre seulement les différences replacées dans leur contexte. Il est plus difficile à lire qu'une comparaison de fichier visuelle, mais montrera tous les changements ensemble. À partir de la boîte de dialogue du Journal de Révision sélectionnez la révision qui vous intéresse, puis choisissez à partir du menu contextuel.
Si vous voulez voir les différences entre deux fichiers différents, vous pouvez le faire directement dans l'explorateur en sélectionnant les deux fichiers (en utilisant le modificateur habituel Ctrl). Alors à partir du menu contextuel de l'explorateur, sélectionnez → .
Si vous voulez voir les différences entre un fichier de votre copie de travail, et un fichier dans n'importe quel référentiel Subversion, vous pouvez le faire directement dans l'explorateur en sélectionnant le fichier puis en maintenant enfoncé la touche Shift en faisant un clic droit pour obtenir le menu contextuel. Sélectionnez → . Vous pouvez faire la même chose pour un répertoire de la copie de travail. TortoiseMerge vous montre ces différences de la même manière qu'un patch - une liste des fichiers modifiés que vous pouvez voir un par un.
Si vous voulez ne pas voir que les différences mais aussi l'auteur, la révision et la date des modifications effectuées, vous pouvez combiner les rapports de différenciation et d'annotation au sein de la boîte de dialogue du journal de révision. Lisez la section intitulée « Annoter les différences » pour plus de détails.
Les outils intégrés fournis avec TortoiseSVN ne supportent pas l'observation de différences entre les hiérarchies de répertoire. Mais si vous avez un outil externe qui supporte vraiment cette fonctionnalité, vous pouvez l'utiliser à la place. Dans la section intitulée « Outils de différenciation/fusion externes » nous vous parlerons de quelques outils que nous avons utilisés.
Si vous avez fourni un outil de diff alternatif, vous pouvez utiliser la touche Shift quand vous sélectionnez la commande Diff pour utiliser l'outil alternatif. Lisez la section intitulée « Réglages des programmes externes » pour savoir comment configurer les autres outils de diff.
Parfois dans la vie d'un projet il se peut que vous modifiiez les fins de ligne de CRLF en LF, ou que vous changiez l'alinéa d'une section. Malheureusement ceci va marquer un grand nombre de lignes comme étant modifiées, bien qu'il n'y ait pas de variation dans la signification du code. Ces options ici vont aider à gérer ces modifications lorsqu'il s'agira de comparer et d'appliquer des différences. Vous pourrez voir ces réglages dans les boîtes de dialogue Fusionner et Annoter, tout comme dans les paramètres de FusionTortoise.
Ignorer les caractères de fins de ligne exclue les modifications seulement dues aux style des caractères de fin de ligne.
Compare les caractères d'espacement inclue les modifications d'indentation et d'espaces à la liste des lignes ajoutées/supprimées.
Ignore les modifications des caractères d'espacement exclue les modifications étant seulement dues au style ou à la quantité de caractères d'espacement, i.e. changement dans l'indentation ou remplacement des tabulations par des espaces. Ajouter des espaces là où il n'y en avait pas, ou tous les retirer est toujours affiché comme étant une modification.
Ignorer tous les caractères d'espacement exclue toutes les modifications dues aux caractères d'espacement.
Naturellement, chaque ligne modifiée est toujours incluse dans le diff.
Quand vous sélectionnez deux arborescences dans l'explorateur de référentiel ou quand vous sélectionnez deux révisions d'un répertoire dans la boîte de dialogue du journal, vous pouvez → .
Cette boîte de dialogue affiche une liste des fichiers modifiés et vous permet de les comparer ou de les annoter individuellement en utilisant le menu contextuel.
Vous pouvez exporter un arbre des modifications, qui est utile si vous avez besoin d'envoyer la structure de l'arbre de votre projet à un tiers, contenant uniquement les fichiers qui ont été modifiés. Cette opération fonctionne sur les fichiers sélectionnés uniquement, ainsi vous devez sélectionner les fichiers qui vous intéressent - ce qui signifie souvent tous les fichiers - puis ensuite sélectionner → . Vous serez invités à chosir un emplacement où sauvegarder l'arbre des modifications.
Vous pouvez également exporter la liste des fichiers modifiés dans un fichier texte en utilisant → .
Si vous voulez exporter la listes des fichiers et aussi les actions (modifié, ajouté, supprimé), vous pouvez le faire en utilisant → .
Le bouton en haut vous permet de modifier le sens de la comparaison. Vous pouvez afficher les changements nécessaires pour arriver de A vers B, ou si vous préférez, de B vers A.
Les boutons avec les numéros de révision peuvent être utilisés pour passer à un éventail de révisions différent. Lorsque vous changez d'éventail, la liste des éléments qui diffèrent entre les deux révisions sera mise à jour automatiquement.
Si la liste des noms de fichier est très longue, vous pouvez utiliser le champ de recherche pour réduire sa taille. Remarquez qu'une simple recherche texte est utilisée, donc si vous voulez restreindre la liste aux fichiers C vous devrez rechercher .c et non *.c.
Il y a beaucoup d'outils disponibles pour comparer des fichiers texte, incluant notre propre TortoireMerge, mais souvent, nous voulons également voir les modifications effectuées sur un fichier image. C'est pourquoi nous avons créé TortoiseIDiff.
→ pour n'importe quel format d'image commun démarrera TortoiseIDiff pour afficher les différences d'image. Par défaut les images sont affichées côte à côte mais vous pouvez utiliser le menu Affichage ou la barre d'outils pour basculer vers une vue haut-bas à la place, ou si vous préférez, vous pouvez superposer les images et utiliser une visionneuse.
Naturellement vous pouvez aussi faire un zoom avant, arrière tout en vous déplacant sur l'image. Vous pouvez également effectuer un mouvement de l'image à gauche simplement en la faisant glisser. Si vous sélectionnez l'option Lier les images ensemble, alors les contrôles de déplacement (barre de défilement, molette) des deux images sont reliés.
Dans l'image, une boîte d'informations affiche les détails concernant le fichier image, comme la taille en pixels, la résolution et la profondeur des couleurs. Si cette boîte se trouve dans le chemin, utilisez → pour la masquer. Vous pouvez obtenir la même information dans une info-bulle lorsque vous passez la souris sur la barre de titre de l'image.
Lorsque les images sont recouvertes, l'intensité relative des images (transparence) est contrôlée grâce à un ascenseur situé sur la gauche. Vous pouvez directement cliquer n'importe où sur l'ascenseur, ou faire glisser le curseur pour modifier interactivement sa valeur. Ctrl+Shift-Roulette pour modifier la transparence.
Le bouton au dessus de l'ascenseur permet de passer de 0% à 100% de transparence, et si vous double-cliquez dessus, la transparence change automatiquement chaque seconde jusqu'à ce que vous cliquiez de nouveau. Ce qui peut être utile lorsque vous cherchez beaucoup de petites modifications.
Parfois vous voulez voir une différence plutot qu'un mélange. Vous pourriez avoir les fichiers d'images de deux révisions d'un circuit imprimé et dont vous souhaitez voir quelles pistes ont changées. Si vous désactivez le mode alpha blend, la différence sera présentée comme un XOR de la valeur des pixels de couleur. Les zones inchangées seront de couleur blanche et les changements seront colorés.
Si les outils que nous fournissons ne font pas ce dont vous avez besoin, essayez un des nombreux programmes open-source ou commerciaux disponibles. Chacun a ses préférences et cette liste n'est en aucun cas exhaustive, mais en voici quelques-uns intéressants :
WinMerge est un grand outil de comparaison open-source qui peut aussi manipuler les répertoires.
Perforce est un RCS commercial, mais vous pouvez télécharger l'outil de différenciation/fusion gratuitement . Obtenez plus d'informations sur Perforce.
KDiff3 est un outil de comparaison gratuit qui peut aussi manipuler des répertoires. Vous pouvez le télécharger ici.
ExamDiff Standard est un logiciel gratuit. Il peut manipuler les fichiers, mais pas les répertoires. ExamDiff Pro est shareware et ajoute un certain nombre de goodies incluant la comparaison de répertoires et des possibilités d'édition. Dans les deux, les versions 3.2 et supérieures peuvent gérer l'unicode. Vous pouvez les télécharger chez PrestoSoft.
Semblable à ExamDiff Pro, c'est un outil de différenciation shareware excellent qui peut manipuler les comparaisons de répertoires et l'unicode. Téléchargez-le chez Scooter Software.
Araxis Merge est un outil commercial utile pour comparer et fusionner tant les fichiers que les dossiers. Il fait la comparaision à trois voies pour les fusions et a des liens de synchronisation à utiliser si vous avez changé l'ordre des fonctions. Araxis.
Cet éditeur de texte inclut la coloration syntaxique pour les diffs unifié, les rendant beaucoup plus faciles à lire. Téléchargez-le chez Scintilla.
Notepad2 est conçu comme un remplaçant pour le programme standard de Bloc-notes Windows et est basé sur le contrôle d'édition open-source de Scintilla. En plus d'être bon pour voir les diffs unifiés, il est beaucoup mieux que le bloc-notes Windows pour la plupart des travaux. Téléchargez-le gratuitement ici.
Lisez la section intitulée « Réglages des programmes externes » pour des informations sur la façon de configurer TortoiseSVN pour utiliser ces outils.