Introduction à CVS : - un système de gestion de version

Transcription

Introduction à CVS : - un système de gestion de version
Introduction à CVS :
un système de gestion de version
Anne Cadiou
LMFA - UMR CNRS 5509
Ecole Centrale de Lyon
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Objectif des systèmes de gestion de version
Contexte d’utilisation :
Un projet, plusieurs développeurs
Utilité des systèmes de gestion de version :
I
Accès concurrentiel par plusieurs développeurs
I
Suivi de l’historique
I
Visualisation des différences
I
Retour à des anciennes versions
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Systèmes existants
Contrôle par verrouillage des fichiers :
SCCS (Source Code Control System)
RCS (Revision Control System)
Evolutions (logiciels libres) :
I CVS (Concurrent Versions System)
Très répandu - Sourceforge
I Subversion
Gestion des répertoires
I Meta-CVS
Gestion des répertoires, sur-couche de CVS
I arch
Gestion décentralisée
Autres :
I bitkeeper
Choisi pour le développement du noyau Linux 2.5 !
I rational software, microsoft VSS, ...
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Sommaire
I
Principe de gestion des versions d’un projet par CVS
I
I
I
Notions d’administration d’une base CVS
I
I
I
I
I
I
Création d’une base
Dépôt inital d’un projet
Système d’archivage : version / révision
Branches
Gestion des conflits
Principales actions du développeur de projet
I
I
I
I
I
I
Notion de base CVS
Modes d’accès à la base CVS
Obtenir une copie de travail
Aperçu des commandes CVS
Soumettre une modification dans la base
Ajouter ou détruire un fichier
Interfaces graphiques
Références
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Principe de gestion des versions par CVS
Notion de base CVS
un projet
un autre projet
...
Fichiers de gestion
Modules des utilisateurs
Figure: Base CVS (Repository)
Localisation par l’utilisateur avec la variable d’environnement
CVSROOT
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Principe de gestion des versions par CVS
Accès à la base CVS
CVSROOT
:ext:usr@server:/usr/local/cvs
CVSROOT
:pserver:usr@server:/usr/local/cvs
copie
ssh
copie
pserver
Base CVS
CVSROOT
/usr/local/cvs
copie
nfs
Figure: Modes de connexion à la base CVS
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Principe de gestion des versions par CVS
Accès à la base CVS
CVSROOT
:ext:usr@server:/usr/local/cvs
CVSROOT
:pserver:usr@server:/usr/local/cvs
copie
ssh
copie
pserver
Base CVS
CVSROOT
/usr/local/cvs
copie
nfs
Figure: Modes de connexion à la base CVS
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Principe de gestion des versions par CVS
Accès à la base CVS
CVSROOT
:ext:usr@server:/usr/local/cvs
CVSROOT
:pserver:usr@server:/usr/local/cvs
copie
ssh
copie
pserver
Base CVS
CVSROOT
/usr/local/cvs
copie
nfs
Figure: Modes de connexion à la base CVS
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Principe de gestion des versions par CVS
Accès à la base CVS
CVSROOT
:ext:usr@server:/usr/local/cvs
CVSROOT
:pserver:usr@server:/usr/local/cvs
copie
ssh
copie
pserver
Base CVS
CVSROOT
/usr/local/cvs
copie
nfs
Figure: Modes de connexion à la base CVS
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Principe de gestion des versions par CVS
Accès à la base CVS
CVSROOT
:ext:usr@server:/usr/local/cvs
CVSROOT
:pserver:usr@server:/usr/local/cvs
copie
ssh
copie
pserver
Base CVS
CVSROOT
/usr/local/cvs
copie
nfs
Figure: Modes de connexion à la base CVS
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Principe de gestion des versions par CVS
Accès à la base CVS
CVSROOT
:ext:usr@server:/usr/local/cvs
CVSROOT
:pserver:usr@server:/usr/local/cvs
copie
ssh
copie
pserver
Base CVS
CVSROOT
/usr/local/cvs
copie
nfs
Figure: Modes de connexion à la base CVS
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Notions d’administration d’une base CVS
Création d’une base CVS
I
Définir un propriétaire de la base sur la machine server
groupadd cvsgrp
useradd -g cvsgrp -u /home/cvs
I
Définir le dépôt de la base CVS
ssh -l cvs server
[cvs@server cvs]$ mkdir cvsbase
[cvs@server cvs]$ export CVSROOT=/home/cvs/cvsbase
I
Initialiser Initialiser les fichiers de gestion du dépôt
[cvs@server cvsbase]$ cvs init
⇓
CVS a créé un répertoire CVSROOT dans le dépôt $CVSROOT
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Notions d’administration d’une base CVS
Rendre la base accessible aux user
user a un compte sur la machine server
Accès en mode nfs, ssh ou pserver suivant la variable $CVSROOT
I
CVSROOT=:ext:user@server:/home/cvs/cvsbase
CVS RSH=ssh
CVSROOT=:pserver:user@server:/home/cvs/cvsbase
Connexion en mode pserver
htpasswd -c /home/cvs/cvsbase/CVSROOT/passwd user
> user:AGgFttV/l6Sik
user n’a pas de compte système
> user:AGgFttV/l6Sik:cvs
I
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Notions d’administration d’une base CVS
Dépôt d’un nouveau projet dans la base CVS
/home/user/src
[user@host]
Base CVS
nfs
Figure: Projet à déposer
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Notions d’administration d’une base CVS
Dépôt d’un nouveau projet dans la base CVS
/home/user/src
cvs import -m ’sources’ projetsrc user v1
[user@host]
Base CVS
nfs
Figure: Dépôt
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Notions d’administration d’une base CVS
Dépôt d’un nouveau projet dans la base CVS
Agir sur la base par les commandes CVS
cvs -d <$CVSROOT> import -m message <module> <user> <tag>
cvs [options] <commande> [opt cmd] [fichiers...]
> cvs --help-options
> cvs -H import
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Système d’archivage : version / révision
Version (release) : Etiquette (<tag>) attribuée à un fichier ou à
un projet par le user
Révision : Numéro automatique attribué à un fichier par CVS
1.4
1.3
1.2
1.1
1.1.1.1
Figure: Numéros automatiques de révision
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Système d’archivage : version / révision
Version (release) : Etiquette (<tag>) attribuée à un fichier ou à
un projet par le user
Révision : Numéro automatique attribué à un fichier par CVS
1.4
1.3
1.2
1.1
1.1.1.1
Figure: cvs commit <module>
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Système d’archivage : version / révision
Version (release) : Etiquette (<tag>) attribuée à un fichier ou à
un projet par le user
Révision : Numéro automatique attribué à un fichier par CVS
1.4
1.3
1.2
version 1
1.1
1.1.1.1
Figure: cvs rtag <version 1> <module>
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Branches
Principal
1.3.4.2
1.3.4.1
1.3.2.1
Devel
1.5
1.2.2.3
1.2.2.1.2.2
1.4
1.2.2.2
1.2.2.1.2.1
1.3
1.2.2.1
1.2
version 1
1.1
1.1.1.1
Figure: cvs rtag -b -r <version 1> Devel <module>
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Résoudre les conflits
Principal
1.3.4.2
1.3.4.1
1.5
Devel
1.2.2.3
1.2.2.1.2.2
Fusion de 1.2.2.2
deux branches
1.4
1.2.2.1.2.1
1.3.2.1
1.3
1.2.2.1
1.2
version 1
1.1
Anne Cadiou
LMFA UMR CNRS 5509
1.1.1.1
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Résoudre les conflits
Principal
1.3.4.2
1.3.4.1
1.5
Devel
1.2.2.3
1.2.2.1.2.2
Fusion de 1.2.2.2
deux branches
1.4
1.2.2.1.2.1
1.3.2.1
1.3
1.2.2.1
cvs checkout -j <Devel> -j <Correction Devel> <fichier>
merge
1.2
version 1
1.1
Anne Cadiou
LMFA UMR CNRS 5509
1.1.1.1
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Résoudre les conflits
Principal
1.3.4.2
1.3.4.1
1.5
1.3.2.1
Devel
1.2.2.3
1.2.2.1.2.2
Fusion de 1.2.2.2
deux branches
1.4
1.2.2.1.2.1
cvs checkout -j <Devel> -j <Correction Devel> <fichier>
1.3
1.2.2.1
merge
1.2
Conflits rencontrés
versionlors
1 de la fusion
Zones conflictuelles indiquées dans l’éditeur
1.1.1.1!
A arbitrer entre 1.1
les développeurs
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Principales actions du développeur de projet
Obtenir une copie de travail
/home/user/src
cvs checkout projetsrc
[user@host]
Base CVS
nfs
Figure: Récupérer une copie du projet
Développer la copie de travail avec les outils habituels
I
I
I
Editeur de texte : xemacs, vi, ...
Outil de compilation : c, f90, dbx, ...
Manipulation des fichiers : cp, mv, ...
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Aperçu des principales commandes
I
Obtenir une copie de travail
import, checkout
I
Archiver les modifications réalisées
add, remove
update, commit
I
Suivre l’historique
status, diff, log
I
Gestion des versions
tag, ...
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Archiver une modification
src/main.f90
cvs commit main.f90
[user@host]
Base CVS
nfs
I
commit : soumettre les changements vers la base CVS
I
update : mettre à jour sa copie de travail
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Ajouter ou détruire un fichier
src/new.f90
src/old.f90
cvs commit fichier
[user@host]
Base CVS
nfs
I
add : ajouter à la base
I
remove : détruire de l’archivage
commit : enregistre les modifications
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Outils
Interaces graphiques :
I
tkcvs
I
cervisia
Autres :
I
cvsweb, interface web
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004
Références
I
http://www.cvshome.org
I
http://www.loria.fr/ molli/cvs-index.html
I
http://www.codiciel.fr
Anne Cadiou
LMFA UMR CNRS 5509
Journée Calcul/Codiciel - FLCHP - 14 Oct 2004