Comparaison de différents logiciels de dépôt

Print Friendly, PDF & Email

logiciel version

To read the French version of this article click here

Ceci est la deuxième partie d’un article sur les systèmes de contrôle de version. Ici, nous discutons des forces et des faiblesses de divers logiciels de référentiel, et où et comment ils sont le mieux utilisés.

Après avoir discuté de la nécessité des répertoires et du contrôle des versions dans la première partie de cet article, ce document tentera de faire des comparaisons de plusieurs offres de logiciels CI (Continuous Integration). L’intégration continue permet de tester et de consigner immédiatement tout changement fréquent et isolé, lors de la fusion avec un code plus vaste.

 Nous utiliserons les critères suivants :

  • Prix (Open-source, licences, par siège, par cœur, contrats de support)
  • Facteurs environnementaux : serveur, cloud, langage de développement, OS
  • Points forts et faibles
  • Scénarios d’utilisation optimale

Voici une liste des logiciels CI qui seront examinés :

  • CVSNT (Concurrent Version System)
  • Git
  • Mercurial
  • Rational Team Concert
  • Subversion

 

* NB : Git et Mercurial sont pris en charge par leurs développeurs ou mainteneurs, à savoir Junio Hamano et Matt Mackall.

 

CVSNT

CVSNT est une branche de CVS, un système de gestion de versions open-source développé pour la première fois en 1986, et est considéré comme l’ancêtre d’autres systèmes de contrôle de version. Il est largement utilisé (cet auteur l’a utilisé pour le développement de logiciels d’automatisation) et mature.

Les développeurs ont l’intention d’implémenter des commits atomiques et d’utiliser un backend SQL. CVSNT est également distribué avec TortoiseCVS et WinCVS.

Ses faiblesses sont la dépendance continue aux fichiers plats (qui sont plus facilement corrompus) et sa gestion des longues branches est faible.

 

GIT

GIT est probablement le système de contrôle de version le plus connu, créé par Linus Torvalds (qui l’a nommé d’après l’argot anglais insulte signifiant «personne déplaisante, idiote, incompétente, ennuyeuse ou enfantine»). Il a été principalement conçu pour accélérer et mettre à l’échelle les correctifs et les métadonnées associées pour le projet Linux. Il a également été spécifiquement conçu pour éviter les pièges de CVS et intégrer des garanties solides contre la corruption des données.

Les inconvénients sont une courbe d’apprentissage abrupte pour ceux qui abandonnent CVS et une prise en charge limitée de Windows. C’est un outil populaire avec de nombreuses offres du serveur Git en tant que service : les exemples incluent GitHubSourceForgeBitbucket, et GitLab.

 

Mercurial

Mercurial est un outil développé pour concurrencer Git pour le développement du noyau Linux.  Il est principalement implémenté en Python (la plupart des autres systèmes de contrôle de version sont écrits en C). Il a quelques fonctionnalités partagées avec CVS mais c’est un système entièrement distribué. Il est relativement facile à apprendre et possède une excellente documentation.

Ses principaux défauts sont qu’il n’est pas aussi facile à automatiser que Git et qu’il est moins puissant sans réglage.

 

Rational Team Concert

Rational Team Concert est l’un des systèmes de contrôle de version d’IBM Rational (les autres sont ClearCase et Synergy). Il dispose d’un ensemble clair de modèles et de fonctions de reporting étendues, ce qui est utile pour la gestion de projet. Il est très flexible, gère bien les fusions complexes et dispose d’un support de premier ordre.

Ses inconvénients sont une interface utilisateur vieillissante et maladroite et la difficulté à l’apprendre. Il est également relativement complexe et bénéficie d’une équipe de support dédiée.

 

Subversion

Subversion a été créé comme un outil permettant de corriger certains bogues de CVS tout en maintenant une compatibilité de haut niveau avec ce logiciel. Il implémente des opérations atomiques pour minimiser les risques de corruption des données. Il dispose d’une vaste bibliothèque de plug-ins, augmentant ses fonctionnalités et offre une visibilité exemplaire pour tous les changements. Le logiciel est très stable, la résolution des conflits est forte, et il est facilement automatisé et intégré dans une chaîne d’outils existante.

Cependant, les performances ne sont pas bonnes sur les hôtes Windows, étant beaucoup plus rapides sous Linux, et il reste quelques problèmes de manipulation de fichiers (nécessitant parfois un processus en deux étapes).

 

Conclusion

Le logiciel de gestion de version est la clé de voûte du développement, garantissant moins de conflits lors des fusions, offrant une vue d’ensemble précieuse aux chefs de projet et accélérant le processus de développement. En tant qu’élément essentiel de la chaîne d’outils, ces logiciels ont différents niveaux d’intégration par produit, mais la plupart sont suffisamment flexibles pour permettre une intégration sans trop de problèmes.

La plupart de ces outils nécessiteront un certain niveau de supervision pour garantir les meilleurs résultats, et ils sont mieux mis en œuvre en utilisant un cadre solide, tel que Prince2 au niveau de la gestion de projet et COBIT au niveau du développement. Cela aide énormément à sélectionner un outil qui correspond le mieux à l’expérience et à la culture de l’équipe de développement.

Enfin, il convient de noter que le choix de l’outil dépend des besoins et des préférences de l’équipe de développement, et il n’existe pas de solution «universelle».

 

Lectures complémentaires :

Dépôt de logiciels et gestion des versions par

Version control system: a non-technical introduction by 

Continuous Integration: a non-technical introduction by 

 

Photo credit : maslakhatul via depositphotos.com

Andrew Clandillon Andrew Clandillon

An IT specialist for over thirty years, I can work as a Systems Architect, Business Analyst, Systems Analyst, or Project Manager, as well as in technical roles.  I am qualified in PRINCE2, COBIT5, and ITIL2, and am studying TOGAF (The Open Group Architecture Foundation).  I believe that structure, planning, and communication are the keys to successful IT management.

Spécialiste informatique depuis plus de trente ans, je peux travailler en tant qu'architecte de systèmes, analyste d'affaires, analyste de systèmes ou chef de projet, ainsi que dans des rôles techniques.  Je suis diplômé en PRINCE2, COBIT5 et ITIL2, et j'étudie TOGAF (The Open Group Architecture Foundation). Je crois que la structure, la planification et la communication sont les clés d'une gestion informatique réussie.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.