Systèmes centralisés

Principe

Dans un système de gestion de versions centralisé, seule une application serveur est déployée. Les copies locales réalisées par les développeurs en sont directement issues et toute mise à jour réintègre l'entrepôt central. Les systèmes centralisés les plus connus et utilisés sont Concurrent Version System (CSV) et Subversion (SVN).

Figure 35 : système de gestion de versions centralisé

En fonctionnant ainsi directement entre copie locale et serveur, un développeur peut travailler facilement sur un sous-ensemble de l'entrepôt : les fichiers locaux peuvent être récupérés à partir de n'importe quel dossier de l'arborescence du serveur.

Limites

Les entrepôts de nombreux logiciels ont migré de systèmes de gestion de versions centralisés vers des systèmes distribués. Déjà en 2009, De Alwis et Sillito constatent ce mouvement de migration. Ils mènent ainsi une analyse des faiblesses des systèmes centralisés et anticipent les plus-values de leurs pendants distribués (De Alwis & Sillito, 2009[1]).

  • Par la nature des informations qui sont enregistrées à chaque mise à jour de fichiers sur l'entrepôt, les systèmes centralisés gèrent souvent très mal la fusion d'une branche avec une autre.

  • Lorsque des développements sont expérimentaux, il est d'usage de les isoler du dépôt principal pour éviter de rendre temporairement les sources non compilables ou non interprétables. En raisons des difficultés dans la fusion de branches, il est courant que les organisations responsables du développement n'ouvrent pas de branches pour cet usage, rendant ainsi délicate la gestion des droits d'écriture sur le dépôt principal. Sans droit d'écriture, un développeur ne peut pas reverser ses modifications sur l'entrepôt, avec ce droit, des modifications contenant des erreurs peuvent endommager la cohérence du code et nuire à la productivité des autres développeurs.

  • La centralisation du dépôt principal crée une faiblesse sur le système qui doit être sauvegardé en temps réel.

  • Les développeurs doivent nécessairement être connectés au réseau du serveur pour pouvoir mettre à jour des contenus.