Dans le premier tome de la série de livres du blogueur Joel Spolsky, l'auteur présente un chapitre qui s'intitule "The Joel Test : 12 steps to better code" (aussi disponible sur le web) qui décrit un test en douze points pour évaluer la qualité de l'équipe de développement de logiciels. Le premier point mentionne l'utilisation d'un système de contrôle de sources comme CVS ou Subversion (souvent abrégé sous le nom SVN). Je suis d'accord avec lui, c'est un outil indispensable, peu importe si on fait parti d'une équipe ou si on est le seul développeur à travailler sur un projet.
Principalement conçu pour pouvoir conserver des copies de versions de fichiers, ce genre d'outil permet aussi de comparer les différentes versions sauvegardées dans le temps et de fusionner deux copies de travail (deux programmeurs qui développent sur un même projet en même temps).
Avec SVN, on peut appeler l'outil "svn diff" par l'invite de commande pour comparer deux documents textes et en sortir un rapport des différences (ligne par ligne). Cependant, au moins un des deux documents doit être versionné pour que ça fonctionne, c'est-à-dire qu'il doit faire parti du repository (base de données centrale où sont stockées les projets et les versions de fichiers).
Comme alternatives, voici deux solutions possibles :
- si on est sur Linux ou si on a UnxUtils d'installé sur sa machine Windows, on pourra utiliser la commande "diff" (à ne pas confondre avec "svn diff")
- si on est sur Windows, on peut installer l'interface graphique TortoiseSVN pour gérer les commandes Subversion directement à partir de l'explorateur Windows (menu contextuel)
Il a l'avantage de pouvoir comparer n'importe quels fichiers (indépendants ou versionnés), donc on peut tout simplement sélectionner les deux documents, cliquer sur le bouton droit de la souris pour faire apparaître le menu contextuel, choisir TortoiseSVN / Diff.
Parlant de systèmes de contrôle de sources, j'en profite pour vous introduire à Git, un outil initialement développé par Linus Torvalds lors du développement du kernel Linux. Il paraît qu'il est efficace et axé sur la rapidité.
En passant, Subversion, TortoiseSVN et Git sont tous des produits gratuits et fiables avec un très haut taux d'adoption. De quoi reléguer Microsoft Visual SourceSafe aux oubliettes...