Vous êtes sur la page 1sur 3

Introduction CVS

CVS (Concurrent Versions System) est un systme de contrle de versions client-serveur permettant plusieurs personnes de travailler simultanment sur un mme ensemble de fichiers. Les gros projets de dveloppement (en particulier les projets Open Source) s'appuient gnralement sur ce type de systme afin de permettre un grand nombre de dveloppeurs de travailler sur un mme projet. CVS permet, comme son nom l'indique, de grer les accs concurrents, c'est--dire qu'il est capable de dtecter les conflits de version lorsque deux personnes travaillent simultanment sur le mme fichier. Le fonctionnement de CVS s'appuie sur une base centralise appele repository , hberge sur un serveur, contenant l'historique de l'ensemble des versions successives de chaque fichier. Le repository stocke les diffrences 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 rel suivi des modifications, tout en optimisant l'espace de stockage ddi au projet. Chaque personne travaillant sur le projet possde un rpertoire de travail (en anglais working copy ou sandbox , traduisez bac sable ), c'est--dire un rpertoire 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 dernire version des fichiers dans la base) rcupre une copie de travail grce une opration appele checkout .

commit
Lorsque l'utilisateur a termin de modifier les fichiers, il peut transmettre les modifications la base. Cette opration est appele commit . Ainsi plusieurs dveloppeurs peuvent travailler simultanment sur une copie du repository et transmettre leurs modifications.

update
S'il arrive qu'un utilisateur tente de transmettre ses modifications alors qu'un autre utilisateur a luimme modifi ce fichier prcdemment, CVS va dtecter un conflit. Si les modifications portent sur des parties diffrentes du fichier, le systme CVS peut proposer une fusion des modifications, grce une opration appele 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 grer des fichiers binaires dans sa base, mais il n'a pas t prvu dans ce but. Les modifications apportes par les autres utilisateurs ne sont pas automatiquement rpercutes par CVS sur la copie locale, il est donc ncessaire, avant chaque modification de fichier, de mettre jour sa copie de travail grce une opration appele update , afin de limiter les risques de conflits.

release
Enfin, lorsque l'utilisateur a termin son travail et qu'il a envoy au serveur CVS toutes les modifications apportes, il peut s'il le dsire vider son rpertoire de travail grce l'opration baptise release .

Serveur CVS
Le serveur CVS est disponible, sous licence libre, pour un grand nombre de systmes d'exploitation : Unix AIX Unix HP-UX Linux SGI Sun Solaris Windows (win32)

Le code source ainsi que des versions binaires (excutables) du serveur CVS sont tlchargeables surhttp://www.cvshome.org.

Clients CVS
CVS est prvu l'origine pour fonctionner en ligne de commande, avec les diffrentes commandes voques ci-dessus. Il existe toutefois un certain nombre de clients CVS graphiques : CVSWeb est une interface web permettant d'accder au repository et de voir les versions des diffrents fichiers qui le composent. TortoiseCVS est un client graphique intgr Windows permettant d'effectuer les diffrentes oprations grce au menu contextuel associ au bouton droit de la souris dans l'explorateur.
Dernire modification le ma