Annexe 2
Le gestionnaire de versions
CVS
Plan :
Présentation de CVS
Logique de fonctionnement
Étapes de travail avec CVS (commandes)
Quelques clients CVS
Présentation de CVS
CVS (Concurrent Version System) est un système de contrôle de versions de fichiers.
Développé par Cyclic Software et est sous licence GNU.
Initialement développé pour Unix, disponible
aussi sur MS Windows®
Qualités de CVS :
► Aide à gérer le développement d’un projet effectué en parallèle par plusieurs utilisateurs :
Permet Accès concurrentiel par plusieurs développeurs à un même projet.
► Identifie les changements et les zones de conflit pour lesquelles un arbitrage humain est requis :
Visualisation des différences qui sont sources de conflits.
► Conserve la trace des modifications successives effectuées sur les projets :
Archivage et Suivi de l’historique
Possibilité de retour à des versions anciennes
Logique de fonctionnement :
Des outils existent:
- RCS (Revisions Control System) - SCCS (Source Code Control)
Modèle: Lock-Modify-UnlockLock-Modify-Unlock ( Contrôle par verrouillage)
Apparition de CVS : Modèle : Copy-Modify-Merge. Copy-Modify-Merge.
- CVSS,Subversion, Méta-CVS…
Copy-Modify-Merge ?
Copy-Modify-Merge ?
Copy-Modify-Merge ?
CVS enregistre les projets dans un référentiel principal enregistre appelé Repository.
L’utilisateur effectue une copie du projet dans le copie référentiel, puis la modifie. modifie
L’utilisateur effectue une synchronisation avec le synchronisation
référentiel pour voir s’il n’y a pas eu entre temps une modification du référentiel.
CVS gère la nouvelle version en résolvant un certain nouvelle version
nombre de conflits et crée un historique des versions.
Dépôt et copie de version :
user1 user2 user3
Dépôt de projet(s)
Copie de projet(s)
Standbox
Standbox
Standbox Référentiel
Étapes de travail avec CVS :
Définition d’un référentiel : variable d’environnement
Ajout de(s) utilisateur(s)
Connexion à un projet
Copie du référentiel
Update
Commit
Définition d’un référentiel :
set CVSROOT = c:\Dev_CVS\cvsrep set CVSROOT = c:\Dev_CVS\cvsrep
L’ajout de la variable d’environnement se
fait grâce à la commande suivante :
Ajouter de(s) utilisateur(s) :
cvs passwd –r <utilisateur> -a <password>
cvs passwd –r <utilisateur> -a <password>
Exemple : cvs passwd –r <user1> -a <my_pass>
Exemple : cvs passwd –r <user1> -a <my_pass>
L’ajout d’un nouvel utilisateur se fait
comme suit :
Connexion au référentiel :
set cvsroot=:<protocole>:<utilisateur>@<hôte>:/CheminProjet set cvsroot=:<protocole>:<utilisateur>@<hôte>:/CheminProjet
Exemple :
Exemple : set cvsroot=:<pserver>:<utilisateur>@<hôte>:/CheminProjetset cvsroot=:<pserver>:<utilisateur>@<hôte>:/CheminProjet
Protocole pserver
Protocole pserver : se connecter en tant que serveur : se connecter en tant que serveur de mot de passe. D’autres protocoles existent :
de mot de passe. D’autres protocoles existent : sserver et ssh.
sserver et ssh.
Pour pointer sur un projet, l’utilisateur se connecte au référentiel en utilisant la
commande :
Copie du projet :
La commande checkout "co" permet d’avoir une copie locale du projet il y a transfert
d’une copie de ce projet à partir du référentiel dans le répertoire courant :
cvs co <Chemin du projet>
cvs co <Chemin du projet>
Exemple : Cvs co c:\Dev_CVS\projet_cvs
Exemple : Cvs co c:\Dev_CVS\projet_cvs
Update :
Elle permet de mettre à jour les
fichiers locaux à partir de versions situées sur le serveur :
cvs update
cvs update
Commit :
cvs commit cvs commit
Une fois l’utilisateur termine et vérifie son travail, il utilise la commande
suivante pour enregistrer sa version
dans le référentiel:
La fusion :
Problème : D'autres utilisateurs ont déjà publié une autre version : commit commit il y a détection de la compatibilité entre les modifications.