150 likes | 288 Views
Un outil de travail Collaboratif CVS. IRD - Centre de Bretagne. Les outils disponibles. Logiciels propriétaires: Visual Source Safe (Microsoft) Relational Clear Case (IBM) PVCS (Perforce) Logiciels libres: RCS CVS. Description de CVS. Outil de travail de développement en équipe
E N D
Un outil de travail CollaboratifCVS IRD - Centre de Bretagne
Les outils disponibles • Logiciels propriétaires: • Visual Source Safe (Microsoft) • Relational Clear Case (IBM) • PVCS (Perforce) • Logiciels libres: • RCS • CVS
Description de CVS • Outil de travail de développement en équipe • Conserve les révisions successives • Facilite la collaboration de plusieurs personnes sur un même projet • L’utilisateur n’accède qu’à une copie locale des fichiers • Les originaux demeurent sur le «référentiel»
Description de CVS • Outil multi-plateformes • Outil libre (http://www.cvshome.org) • Fonctionne sur des fichiers texte (ASCII) Code source : C, Fortran, Matlab, Perl, HTML, XML, fichiers de données, etc
Principe Montpellier Référentiel checkout update checkout update commit commit Brest Nouméa Copies locales
Mode de connexion • Mode d’accès: • Local (NFS) • Serveur (telnet et chroot) • Sécurisé • Kerberos • SSH • Utilisateurs • Anonymous (:pserver:anoncvs@cvs.mpl.ird.fr:/projet) • Référencé (:pserver:jgrelet@cvs.mpl.ird.fr:/projet)
Organisation: Les modules Référentiel Montpellier passwd anoncvs = r jgrelet = rw Modules oceano inmarsat TSG checkout update commit Brest Copie locale TSG
Utilisation • Forme générale d’une commande: cvs [options] <sous commande> [options] [arguments] • Variable d’environnement CVSROOT: $> export CVSROOT :pserver:anoncvs@cvs.mpl.ird.fr:/projet • Utilisation (obtenir une copie de travail d’un module): $> cvs login $> cvs checkout oceano • Soumission (archivage) : $> cvs add <fichier> $> cvs commit –m <descriptif> <fichier>
Travail sur les fichiers • Editeurs • Emacs • VI ou mieux VIM • Gère les conflits de versions concurrentes • Mettre à jour sa copie de travail pour se préserver des collisions (cvs update) • Ne peut pas aider à la résolution de conflits relatifs à des logiques de programmation
Utilisation avancée • Historique et état des fichiers $> cvs log callback_analyse.m $> cvs status callback_analyse.m • Différences entre versions $> cvs diff –r 1.1 callback_analyse.m • Contraintes et branches • Figer une version d’un module ou ensemble de fichiers • Gérer des branches de développement
Utilisation avancée module demo toto.m revision 1.2.1 toto.m revision 1.2 toto.m revision 1.1 titi.m revision 1.1 titi.m revision 1.3 titi.m revision 1.4 titi.m revision 1.2 README revision 1.1 Tag version 1.0 Tag version 1.1 Bug sur la version 1.0 dans toto.m Appliquer une contrainte toto.m revision 1.8 titi.m revision 1.14 README revision 1.3 Tag version 2.0
Exemple sous Matlab setenv MATLABPATH ~:/home/perceval/jgrelet/cvs/oceano/lib/matlab
Projet complexe: Thermo Thermo V1.0 branche Thermo V1.1GUI Thermo V1.1 Thermo V1.2GUI Thermo V1.2 fusion Thermo V2.0
CVS resources book • CVS • CVS Home http://www.cvshome.org • Documentation CVS (jgrelet) • CVS-Howto http://www.ac-grenoble.fr/slis/devel/cvs-howto.html • Utilisation de CVS http://www.idealx.com