CVS - Introduction

Décembre 2016

Introduction à CVS



CVS (Concurrent Versions System) est un système de contrôle de versions client-serveur permettant à plusieurs personnes de travailler simultanément sur un même ensemble de fichiers. Les gros projets de développement (en particulier les projets Open Source) s'appuient généralement sur ce type de système afin de permettre à un grand nombre de développeurs de travailler sur un même projet. CVS permet, comme son nom l'indique, de gérer les accès concurrents, c'est-à-dire qu'il est capable de détecter les conflits de version lorsque deux personnes travaillent simultanément sur le même fichier.

Le fonctionnement de CVS s'appuie sur une base centralisée appelée « repository », hébergée sur un serveur, contenant l'historique de l'ensemble des versions successives de chaque fichier. Le repository stocke les différences entre les versions successives, les dates de mise à jour, le nom de l'auteur de la mise à jour et un commentaire éventuel, ce qui permet un réel suivi des modifications, tout en optimisant l'espace de stockage dédié au projet.

Chaque personne travaillant sur le projet possède un « répertoire de travail » (en anglais « working copy » ou « sandbox », traduisez « bac à sable »), c'est-à-dire un répertoire contenant une copie de la base CVS (repository).

checkout

A l'aide d'un client CVS, chaque utilisateur souhaitant travailler sur le projet (pour modifier des fichiers ou simplement pour voir la dernière version des fichiers dans la base) récupère une copie de travail grâce à une opération appelée « checkout ».

checkout

commit

Lorsque l'utilisateur a terminé de modifier les fichiers, il peut transmettre les modifications à la base. Cette opération est appelée « commit ». Ainsi plusieurs développeurs peuvent travailler simultanément sur une copie du repository et transmettre leurs modifications.

commit

update

S'il arrive qu'un utilisateur tente de transmettre ses modifications alors qu'un autre utilisateur a lui-même modifié ce fichier précédemment, CVS va détecter un conflit. Si les modifications portent sur des parties différentes du fichier, le système CVS peut proposer une fusion des modifications, grâce à une opération appelée diff, sinon CVS va demander à l'utilisateur de fusionner manuellement les modifications. Il est à noter que les fusions ne peuvent s'appliquer qu'aux fichiers textes. CVS peut toutefois gérer des fichiers binaires dans sa base, mais il n'a pas été prévu dans ce but. Les modifications apportées par les autres utilisateurs ne sont pas automatiquement répercutées par CVS sur la copie locale, il est donc nécessaire, avant chaque modification de fichier, de mettre à jour sa copie de travail grâce à une opération appelée « update », afin de limiter les risques de conflits.

update

release

Enfin, lorsque l'utilisateur a terminé son travail et qu'il a envoyé au serveur CVS toutes les modifications apportées, il peut s'il le désire vider son répertoire de travail grâce à l'opération baptisée « release ».

Serveur CVS

Le serveur CVS est disponible, sous licence libre, pour un grand nombre de systèmes d'exploitation :




Le code source ainsi que des versions binaires (exécutables) du serveur CVS sont téléchargeables sur http://wiht.link/CVS-resources.

Clients CVS

CVS est prévu à l'origine pour fonctionner en ligne de commande, avec les différentes commandes évoquées ci-dessus. Il existe toutefois un certain nombre de clients CVS graphiques :

  • CVSWeb est une interface web permettant d'accéder au repository et de voir les versions des différents fichiers qui le composent.
  • TortoiseCVS est un client graphique intégré à Windows permettant d'effectuer les différentes opérations grâce au menu contextuel associé au bouton droit de la souris dans l'explorateur.

A voir également :


Języki programowania
Języki programowania
Ce document intitulé «  CVS - Introduction  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.