C. V. S.

Concurrent Versions System : système pour versions concurrentes.

Besoin

Permettre à plusieurs personnes de travailler simultanément sur un ensemble de fichiers.

Analyse

CVS est un VCS utilisant un modèle copie/modification/fusion : tous les développeurs peuvent obtenir (check out) un fichier puisqu'il ne s'agit que de copies de travail (working copy). Lorsqu'ils valident (commit) leur version modifiée :

Conception

CVS stocke l'ensemble des versions dans un référentiel (repository).

Sous une arborescence du choix des utilisateurs se trouve :

Implémentation

La localisation du référentiel est spécifiée par la variable d'environnement CVSROOT.

CVS Version 1 Commentaire
Domaine Technologie Release 0 1 2 3 4 5 6
Commandes co                 Check Out : Extraction de copie de travail
update                 Fusion les sources du référentiel avec les sources modifiées. Suivi d'un test (voir si le code fonctionne toujours après fusion) puis d'un commit typiquement.
commit   ci             Valide les modifications pour être placées dans le référentiel. Après update typiquement.
log                 Liste des modifications historisées
diff                 Affiche les différences entre deux versions
add                 Ajout d'un fichier dans le référentiel. Suivi de commit typiquement
rm                 ReMove : suppression d'un fichier du référentiel après suppression en local. A suivre d'un commit.
-P               Prune empty directories
tag                 Marquer des sources (comme faisant partie d'une release typiquement)
Options -d pserver     Password-authenticated server
ext     External connection program tels que rsh, SSH, kserver (Kerberos 4), gserver (GSSAPI ou Kerberos 5)
Mots-clés Substitués Auteur $Author$
Nom de login de l'utilisateur ayant placé la révision.
Date $Date$ Date et heure (UTC) à laquelle la révision a été placée
En-tête $Header$ En-tête standard contenant le chemin complet du fichier, son numéro de révision, sa date (UTC), son auteur, son état (et celui qui l'a verrouillé le cas échéant, très rare)
Id $Id$ Comme En-tête, sauf que le fichier est sans son chemin complet
Révision $Revision$ Numéro affecté à cette révision
Source $Source$ Chemin complet du fichier
Protocole Distant   Non Oui Protocole distant
Référentiel Format         1.3  
Local Répertoire de travail             1.5  

Notes

Exemples

CVS est utilisé sur les projets :

Des exemples de commandes CVS sont :

cvs -z3 -d:pserver:anonymous@cvs.kicsa.sourceforge.net:/cvsroot/kicsa co MonModule

cvs -z3 -d:ext:
javarome@cvs.kicsa.sourceforge.net:/cvsroot/kicsa co MonModule

Limitations

Voir