Subversion, le logiciel de gestion de version, permet facilement de regarder les différences entre un fichier dans la working copy, c’est à dire en local et potentiellement modifiée par nos soins et son homologue dans le repository, c’est à dire sur le serveur et potentiellement modifié par une autre personne.
La commande suivante permet d’afficher les différences entre le fichier local monfichier.php et la révision en cours dans le repository de ce même fichier:
svn diff monfichier.php
Bien entendu, pour un petit fichier ou lorsqu’il y a peu de différence, le résultat est tout a fait lisible. Quelques lignes avec des « + » ou des « - » et on comprends bien ce qu’il y a de différent. En revanche, on ne sait pas trop le contexte de la modification et, surtout, lorsqu’il s’agit de gros fichiers ou lorsqu’il y a plusieurs différences, ça devient tout bonnement imbitable.
Heureusement, il est possible d’utiliser un programme tiers pour faire ce travail. Et vimdiff le fait très bien. Malheureusement svn diff envoi les paramètres dans un ordre que vimdiff ne comprends pas. Aussi, il nous faut passer par un petit script qui remet tout ça en ordre.
- Dans un fichier, où vous voulez, par exemple dans votre home si c’est uniquement pour vous, ou dans /usr/local/bin si c’est pour plusieurs personnes (dans le cadre d’un serveur de développement, par exemple), créez un fichier diffwithvim:
#!/usr/bin/python import sys, os diffprogram = '/usr/bin/vimdiff' fn_old = sys.argv[6] fn_working_copy = sys.argv[7] # arrange the args in the order diffprogram expects them args = ['diffwithvim', '-d', fn_old, fn_working_copy] os.execv(diffprogram, args)
- Editez ~/.subversion/config
- Trouvez [helpers]
- Ajoutez la ligne suivante:
diff-cmd = /usr/local/bin/diffwithvim
Maintenant, lorsque vous ferez un svn diff monfichier.php, vimdiff (qui n’est rien d’autre que vim) se lancera, coupé en 2 verticalement, vous pourrez voir les 2 versions de fichiers côte à côte et comprendre plus facilement les différences grâce aux couleurs de vimdiff.
Petite astuce: Pour quitter vimdiff, vous pouvez faire :q pour chacune des 2 versions de fichier ou bien :qa pour quitter les 2 en même temps.

Je vous parlais de
Il y a quelques semaines, je me suis payé la
Et oui, j’ai abandonné
Nexen


