Voir les différences

One of the commonest requirements in project development is to see what has changed. You might want to look at the differences between two revisions of the same file, or the differences between two separate files. TortoiseSVN provides a built-in tool named TortoiseMerge for viewing differences of text files. For viewing differences of image files, TortoiseSVN also has a tool named TortoiseIDiff. Of course, you can use your own favourite diff program if you like.

Différences de fichier

Changements locaux

Si vous voulez voir quels changements vous avez fait dans votre copie de travail, utilisez juste le menu contextuel de l'explorateur et choisissez TortoiseSVNVoir les différences.

Comparaison avec une autre branche/étiquette

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 TortoiseSVNDiff avec l'URL. 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 arbres à comparer, deux étiquettes peut-être, ou une branche/étiquette et le tronc. Le menu contextuel vous permet là de les comparer en utilisant Comparer les révisions. Lisez en plus dans la section intitulée « Comparer des répertoires ».

Comparaison avec une précédente révision

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 Comparaison avec la copie de travail dans le menu contextuel.

If you want to see the difference between the last committed revision and your working copy, assuming that the working copy hasn't been modified, just right click on the file. Then select TortoiseSVNDiff with previous version. This will perform a diff between the revision before the last-commit-date (as recorded in your working copy) and the working BASE. This shows you the last change made to that file to bring it to the state you now see in your working copy. It will not show changes newer than your working copy.

Comparaison entre deux révisions précédentes

Si vous voulez voir les différence 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 Comparer les révisions à 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. Lisez-en plus dans la section intitulée « Comparer des répertoires ».

Tous les changements faits dans une livraison

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 avec quelques lignes de 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 Voir les différences en mode diff unifié à partir du menu contextuel.

Comparaison entre fichiers

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 TortoiseSVNVoir les différences.

Différence entre fichiers/répertoires de la CdT et une URL

If you want to see the differences between a file in your working copy, and a file in any Subversion repository, you can do that directly in explorer by selecting the file then holding down the Shift key whilst right clicking to obtain the context menu. Select TortoiseSVNDiff with URL. You can do the same thing for a working copy folder. TortoiseMerge shows these differences in the same way as it shows a patch file - a list of changed files which you can view one at a time.

Comparaison avec informations de condamnation

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 de condamnation 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.

Comparaison entre répertoires

The built-in tools supplied with TortoiseSVN do not support viewing differences between directory hierarchies. But if you have an external tool which does support that feature, you can use that instead. In la section intitulée « Outils de différenciation/fusion externes » we tell you about some tools which we have used.

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.

Options de fins de ligne et d'espacement

Sometimes in the life of a project you might change the line endings from CRLF to LF, or you may change the indentation of a section. Unfortunately this will mark a large number of lines as changed, even though there is no change to the meaning of the code. The options here will help to manage these changes when it comes to comparing and applying differences. You will see these settings in the Merge and Blame dialogs, as well as in the settings for TortoiseMerge.

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.

Comparer des répertoires

Figure 4.24. La boîte de dialogue Comparer les révisions

La boîte de dialogue Comparer les révisions


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 Menu contextuelCompare les révisions.

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.

You can export a change tree, which is useful if you need to send someone else your project tree structure, but containing only the files which have changed. This operation works on the selected files only, so you need to select the files of interest - usually that means all of them - and then Context menuExport selection to.... You will be prompted for a location to save the change tree.

You can also export the list of changed files to a text file using Context menuSave list of selected files to....

If you want to export the list of files and the actions (modified, added, deleted) as well, you can do that using Context menuCopy selection to clipboard.

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.

The buttons with the revision numbers on can be used to change to a different revision range. When you change the range, the list of items which differ between the two revisions will be updated automatically.

If the list of filenames is very long, you can use the search box to reduce the list to filenames containing specific text. Note that a simple text search is used, so if you want to restrict the list to C source files you should enter .c rather than *.c.

Comparaison des images en utilisant TortoiseIDiff

Il y a beaucoup d'outils disponibles pour comparer des fichiers texte, incluant notre propre TortoireMerge, mais souvent, nous nous retrouvions à vouloir voir comment un fichier image a été modifié aussi. C'est pourquoi nous avons créé TortoiseIDiff.

Figure 4.25. Le visualiseur de différences d'images

Le visualiseur de différences d'images


TortoiseSVNDiff for any of the common image file formats will start TortoiseIDiff to show image differences. By default the images are displayed side-by-side but you can use the View menu or toolbar to switch to a top-bottom view instead, or if you prefer, you can overlay the images and pretend you are using a lightbox.

Naturally you can also zoom in and out and pan around the image. You can also pan the image simply by left-dragging it. If you select the Link images together option, then the pan controls (scrollbars, mousewheel) on both images are linked.

An image info box shows details about the image file, such as the size in pixels, resolution and colour depth. If this box gets in the way, use ViewImage Info to hide it. You can get the same information in a tooltip if you hover the mouse over the image title bar.

When the images are overlaid, the relative intensity of the images (alpha blend) is controlled by a slider control at the left side. You can click anywhere in the slider to set the blend directly, or you can drag the slider to change the blend interactively. Ctrl+Shift-Wheel to change the blend.

The button above the slider toggles between 0% and 100% blends, and if you double click the button, the blend toggles automatically every second until you click the button again. This can be useful when looking for multiple small changes.

Sometimes you want to see a difference rather than a blend. You might have the image files for two revisions of a printed circuit board and want to see which tracks have changed. If you disable alpha blend mode, the difference will be shown as an XOR of the pixel colour values. Unchanged areas will be plain white and changes will be coloured.

Outils de différenciation/fusion externes

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 son propre favori et cette liste n'est en aucun cas exhaustive, mais en voici quelques-uns à considérer :

WinMerge

WinMerge est un grand outil de comparaison open-source qui peut aussi manipuler les répertoires.

Perforce Merge

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

KDiff3 est un outil de comparaison gratuit qui peut aussi manipuler des répertoires. Vous pouvez le télécharger ici.

ExamDiff

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.

Beyond Compare

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

Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does three-way comparison in merges and has synchronization links to use if you've changed the order of functions. Download it from Araxis.

SciTE

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

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.