un outil de travail collaboratif cvs ird - centre de bretagne
TRANSCRIPT
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
• 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
Brest Nouméa
checkout
updatecommit
Référentiel
Copies locales
checkout
update
commit
Mode de connexion
• Mode d’accès:– Local (NFS)
– Serveur (telnet et chroot)
– Sécurisé• Kerberos
• SSH
• Utilisateurs– Anonymous (:pserver:[email protected]:/projet)– Référencé (:pserver:[email protected]:/projet)
Organisation: Les modules
checkout
updatecommit
Référentiel
Copie locale
Montpellier
Modules oceano inmarsat TSG
passwd
anoncvs = r
jgrelet = rw
TSG
Brest
Utilisation
• Forme générale d’une commande:cvs [options] <sous commande> [options] [arguments]
• Variable d’environnement CVSROOT:$> export CVSROOT :pserver:[email protected]:/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
titi.m
revision 1.1
toto.m
revision 1.1
titi.m
revision 1.2
titi.m
revision 1.3
toto.m
revision 1.2
README
revision 1.1
titi.m
revision 1.4
Appliquer une contrainte
Tag version 1.0
toto.m
revision 1.8
titi.m
revision 1.14
README
revision 1.3
Tag version 2.0
Bug sur la version 1.0 dans toto.m
toto.m
revision 1.2.1
Tag version 1.1
Exemple sous Matlab
oceanooceano
adcpadcp ctdctd xbtxbt liblib
matlabmatlabperlperl
setenv MATLABPATH ~:/home/perceval/jgrelet/cvs/oceano/lib/matlab
Projet complexe: Thermo
Thermo V1.0
Thermo V1.1 Thermo V1.1GUI
Thermo V2.0
Thermo V1.2GUI Thermo V1.2
branche
fusion
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