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