Intégration de VCS dans Nautilus

Quelques notes partielles sur l'intégration graphique de vcs dans le navigateur de fichier Nautilus, notamment Subversion et Bazaar. Le but du jeu étant d'obtenir quelque chose de comparable au système de TortoiseSVN sous Windows.

Parlons d'abord de Subversion et d'une solution logicielle dédiée, RapidSVN (paquet rapidsvn sous Ubuntu) permettant de manipuler les copies de travail ou des dépôts. Je l'ai utilisé pendant quelques mois avant que ses nombreux bugs ne finissent par avoir raison de ma patience.

Il existe ensuite une collection de scripts pour Nautilus qui permettent de lancer les principales commandes svn (paquet nautilus-script-collection-svn sous Ubuntu). Basique et sans fioriture, c'est tout de même un peu austère pour un usage quotidien (autant rester à la ligne de commande).

NautilusSVN est une solution plus intéressante. Elle permet de lancer le logiciel Meld pour comparer / éditer les différentes versions et offre surtout une illustration graphique dans Nautilus de l'état des fichiers grâce aux emblèmes. Attention cependant : vous pourriez avoir des problèmes si vous n'utilisez pas le thème d'icône par défaut Human. L'auteur fournit un paquet .deb qui s'installe très bien sous Ubuntu. L'équipe de développement s'est enrichi et possède maintenant un blog.

Enfin, à noter le projet GnubVersion. Plutôt prometteur quand il a été lancé au début de l'année, il semble malheureusement abandonné. La compilation des sources a constamment échoué sous Gutsy Gibbon, mais on peut utiliser un paquet Ubuntu créé par un utilisateur. L'interface graphique est plutôt agréable mais GnubVersion n'offre pas d'illustration graphique de l'état des fichiers dans Nautilus. Pour remédier à cela, on peut utiliser le script python svnemblem.py créé par Stuart Landridge : il faut installer le paquet python-subversion puis placer le script dans le répertoire ~/.nautilus/python-extensions/.

Passons maintenant à Bazaar. Le logiciel étant développé par Canonical, société qui diffuse aussi Ubuntu, on pourrait croire que cette distribution dispose d'outils graphiques performants. Ce n'est pas vraiment le cas, le logiciel Olive restant assez sommaire. Si vous installez le paquet bzr-gtk, vous aurez à disposition quelques petites fenêtres graphiques illustrant les principales commandes du logiciel (diff, checkout, commit, ...) et, théoriquement, une intégration dans Nautilus. Théoriquement car le plugin ne fonctionne pas par défaut. Pour corriger cela, il faut créer un lien symbolique du script vers le répertoire de plugins python de Nautilus, comme ceci :

 sudo ln -s /usr/share/pyshared/bzrlib/plugins/gtk/nautilus-bzr.py /usr/lib/nautilus/extensions-2.0/python/nautilus-bzr.py

Capture d'écran

Illustration de l'état des fichiers d'un dossier versionné par Bazaar

Même ainsi, l'extension n'est pas encore tout à fait au point ; j'ai donc dû modifier quelque peu le code. Dorénavant :

  • Les emblèmes sont mis à jour quand le statut d'un fichier est modifié.
  • Un fichier non versionné n'a plus d'emblème.
  • Possibilité de lancer le dialogue de statut

Je publierai sans doute ces modifications après m'être assuré qu'elles fonctionnent correctement.

Mise à jour : j'ai supprimé le plugin nautilus-bzr vu que Nautilus finissait par consommer près de 1 Go de ram. Je ne suis pas certain que le script était fautif, mais le fait de le supprimer à ramener la consommation mémoire du logiciel à la normale.