métier

Passer à Subversion

Petite étude pour passer à Subversion Publié par Éric Le Merdy

1. Architecture

svn architecture

J'ajoute mon schéma à la déjà longue liste des schémas d'architecture de Subversion.

2. Dépendances (obligatoire - facultatif)

svn dependencies

libapr et libapr-util (client et serveur)
Apache Portable Runtime, une librairie de services multi-plate forme offrant cette qualité à SVN qui s'appuie sur cette librairie.

libz (client et serveur)
permet de compresser les contenus échangés à travers le réseau.

SQLite (client et serveur)
base de donnée légère et embarquée utilisée pour garder la trace des fusions (merge).

libneon ou libserf (client)
utilisé par le client pour envoyer des requêtes HTTP.

OpenSSL (client et serveur)
accès aux URL encryptées avec SSL.

Berkeley DB (client et serveur)
l'une des implémentations possibles de stockage (avec le système de fichier : FSFS).

libsasl (client et serveur)
ajoute le support de l'authentification SASL lorsque le protocole snvserve est utilisé.

Python, Perl, Java, Ruby (optionnel)
ces langages pourront utiliser les API de Subversion.

3. Migration de CVS

Utilisation de l'outil cvn2svn :

  • Convertit un repository CVS en un SVN. Or, CVS ne couvre pas toutes les fonctionalités. Par exemple, CVS ne gère pas l'atomicité des commits. C'est donc le script qui va recomposer les commits par des connections succèssives et des recoupements.
  • Outil de migration en une fois
  • S'éxécute sur la machine qui héberge le repository CVS à convertir
  • Ecrit en Pyhton (requiers la version 2.2)
  • Requiers Apache Portable Runtime (comande co) ou cvsclient (commande cvs)
  • Fiable
  • Facile à paramétrer

4. Client Eclipse

Deux plugins :

  1. Subclipse (développé par l'équipe Subversion)
  2. Subversive (en gestation dans l'incubateur Eclipse)

Lequel choisir ? A défaut d'avoir testé les deux, on peux quand même noter ces quelques arguments :

  • Comprendre eclipse en profondeur est plus dur pour les développeurs de Subversion que comprendre Subversion ne l'est pour les développeurs de la fondation eclipse
  • Un projet qui se trouve en incubation va sûrement être releasé dans la prochaine version.
  • Ratings sur eclipseplugincentral.com : Subclipse 6.8 - Subversive 7.7
  • Mon frère utilise Subversive
  • Date de la dernière version : Subclipse 18 décembre 2007 - Subversive 27 août 2007
  • Google fight : Subclipse 402,000 résultats - Subversive 4,350,000 résultats

Attention, il se peut que des arguments peux fiables se soient glissés dans cet argumentaire. Je pense qu'il faut essayer les deux pour se faire une idée correcte.

Références: