Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Les avantages et inconvénients des outils de gestion de version distribués (DVCS)

21 Février 2012 , Rédigé par benkirane Publié dans #Les outils pour la gestion du code source

Aujourd'hui, la taille des projets informatiques est de plus en plus importante. Les équipes de développements comptent, ainsi, de plus en plus de membres. Tout au long de la réalisation des programmes informatiques, de nombreuses personnes "commitent" tous les jours leur code. Avec les systèmes de gestion de source traditionnels tels que CVS ou SVN, il devient de plus en plus compliqué de travailler au quotidien. Les problèmes récurrent sont :

  • Les conflits de code lors des commits suite au travail de deux développeurs sur une même portion de code,
  • La gestion des différentes versions de code (celle en recette et celle en cours de développement principalement),
  • La difficulté de valider l'intégration de son code avec le reste du projet avant le commit.

La cause principale de ces soucis que rencontrent les grosses équipes de développements au quotidien est la centralisation du repository contenant le code source partagé. Pour cette raison, des logiciels de gestion de version distribués ont été créés. Ils gèrent les versions à l'aide d'une architecture des dépôts du code source distribuée. En effet, ces logiciels impliquent que chaque développeur a une copie locale d'un "repository" de référence ou maître avec lequel elle est synchronisée.

Gestion du commit

Pour faire un commit, la procédure est, en général, la suivante:

  1. Synchroniser son "repository" local avec le "repository" maître (faire un "pull") pour "tirer" (récupérer) les dernières modifications effectuées par les autres membres de l'équipe,
  2. "Commiter" ses modifications dans le "repository" local,
  3. Exécuter la compilation du programme et les tests,
  4. Si tout est ok, synchroniser son "repository" local avec le "repository" maître (faire un "push") pour "pousser" (partager) ses modifications avec le reste de l'équipe.

Avantages/Inconvénients des DVCS

L'architecture distribuée des DVCS induit de nombreux avantages:

  • Avoir un repository local identique au repository de référence pour faire des commits et valider son code avant de le partager à l'ensemble de l'équipe,
  • La gestion des branches et surtout le développement sur l'une ou l'autre est souvent beaucoup mieux géré qu'avec les logiciels de gestion de source traditionnels: ceci est facilité par le fait que les DVCS copient tout l'historique de versionning dans chaque repository local,
  • La gestion des "merges" est beaucoup plus simple avec les DVCS: en effet, tant que la même ligne de code n'est pas modifiée par deux développeurs en même temps, le logiciel de gestion des versions effectue un merge automatique du code,
  • La possibilité de développer en mode non connecté de manière plus efficace: le développeur peut, par exemple, synchroniser son repository local moins souvent puisque la gestion des merges est plus efficace,
  • Le code source et son versionning est sauvegardé sur l'ensemble des repositories locaux et n'est plus centralisé sur une seule machine: cela implique moins de risque de perdition de données.

Ces nombreux avantages ne sont pas, bien sûr, sans certains inconvénients surtout, au départ, lors du passage d'un logiciel traditionnel à un DVCS:

  • Le coût de mise en œuvre (installation, déploiement, transfert des projets de l'ancien VCS, ...),
  • Nécessité de faire monter en compétence l'ensemble des développeurs: cette partie n'est pas à négliger car de nouveaux concepts sont à (re-)apprendre.

Les logiciels du marché

Les principaux logiciels de gestion de code source distribué sont Mercurial et Git. Vous trouverez tous les détails sur leur site officiel respectif.

Partager cet article

Repost 0
Pour être informé des derniers articles, inscrivez vous :

Commenter cet article