Logo subversion Banière SVN

La première brique indispensable à la création d'une plate-forme d'intégration continue est un gestionnaire de sources. C'est sur cet outil que s'appuieront ensuite les outils de tests automatisés et les outils qualimétriques.

Comme avantages immédiat à l'utilisation d'un tel outil, citons:

  • la mise en sécurité du code source de tout développeur (pas de perte de travail en cas de crash disque)
  • la capacité de revenir en arrière si une modification s'avère désastreuse
  • la capacité de savoir qui a fait quoi, quand et pourquoi (si le commentaire est pertinent)
  • la fusion au fur et à mesure des travaux de toute l'équipe (et pas au moment de la livraison)
  • la possibilité de travailler sur plusieurs branches de développement et de porter les modification de l'une sur les autres

Actuellement, 2 familles de gestionnaires de sources sont opposés: les gestionnaires centralisés (tel que subversion) et les décentralisés tels que git (celui écrit et utilisé par Linus Torvald), Bazar, mercurial, .... Dans mon approche, un gestionnaire centralisé était intéressant car il assurait la conservation sur un serveur du travail de toutes les équipes. Reste qu'il est possible d'utiliser le meilleur des 2 mondes en utilisant git et subversion en même temps, ce qui sera étudié ultérieurement, notamment pour éviter de trop retarder les livraisons inachevées ....

Parmi les qualités de subversion, voici les principales qui m'ont conduit à le choisir (au moment où les gestionnaires décentralisés n'étaient pas encore en vogue):

  • facilité d'installation et d'administration
  • possibilité d'authentification via LDAP
  • gestion fine des droits sur les projets
  • syntaxe connue pour les utilisateurs de CVS
  • livraison atomique des modifications
  • gestion économe de l'espace de stockage (seules les différences d'avec la version précédente sont enregistrées)
  • gestion des liens symboliques (entre branches, même principe que le point précédent)
  • gestion économe du réseau (même principe que les points précédents)
  • prise en compte par les IDE majeurs du marché dont Eclipse
  • prise en compte par les outils d'intégration continue
  • existence d'un outil en ligne de commande et d'outils dans les gestionnaires de fichier Linux et Windows
  • existence d'outils de consultation en client léger (comme viewCVS ou WebSVN)
  • capacité à transformer des dépôts CVS ou SourceSafe en dépôts Subversion

Le site: http://subversion.apache.org