12.1.2 Exemples de sessions CVS
Ce qui suit configure les environnements de shell pour l'acc�s au d�p�t CVS.
12.1.2.1 CVS anonyme (t�l�chargement seulement)
Acc�s distant en lecture seule :
$ export CVSROOT=:pserver:[email protected]:/cvsroot/qref
$ cvs login
$ cvs -z3 co qref
12.1.2.2 Utilisation d'un serveur CVS local
Acc�s local depuuis un shell sur la m�me machine :
$ export CVSROOT=/var/lib/cvs
12.1.2.3 Utilisation d'un pserver CVS distant
Acc�s distant sans SSH (utilise le protocole RSH de cvs
) :
$ export CVSROOT=:pserver:[email protected]:/var/lib/cvs
$ cvs login
Cela peut �tre sujet � des attaques d'�coute de ligne.
12.1.2.4 Utilisation d'un CVS distant avec ssh
Acc�s distant avec SSH :
$ export CVSROOT=:ext:[email protected]:/var/lib/cvs
ou pour SourceForge :
$ export CVSROOT=:ext:[email protected]:/cvsroot/qref
Vous pouvez aussi utiliser l'authentification RSA (Se connecter avec moins de mots de passe
– RSA, Section 9.5.3), qui �limine la demande du mot de passe.
12.1.2.5 Cr�er une nouvelle archive CVS
Pour,
OBJET VALEUR SIGNIFICATION
Arbre source : ~/project-x Tous le code source
Nom du Projet : project-x Nom pour ce projet
Balise vendeur : Main-branch Balise pour la branche enti�re
Balise de version : Release-original Balise pour une version sp�cifique
Ensuite,
$ cd ~/project-x # va dans le r�pertoire du source
... cr�e un arbre source ...
$ cvs import -m "Start project-x" project-x Main-branch Release-initial
$ cd ..; rm -R ~/project-x
12.1.2.6 Travailler avec CVS
Pour travailler avec project-x en utilisant le d�p�t CVS
local :
$ cd # va � la zone de travail.
$ cvs co project-x # importe les sources du CVS en local
$ cdproject-x
... effectuez des changements au contenu ...
$ cvs diff -u # similaire � diff -u repository/ local/
$ cvs up -C modified_file # undo changes to a file
$ cvs ci -m "D�crire les changements" # sauvegarde les sources locales
sur CVS
$ vi newfile_added
$ cvs add newfile_added
$ cvs ci -m "Ajout de newfile_added"
$ cvs up # r�cup�re la derni�re version du CVS
... pour cr�er les sous-r�pertoires r�cemment ajout�s, utilisez
... "cvs up -d -P" � la place
... attention aux lignes commen�ant par "C filename"
... le code non modifi� est d�plac� vers `.#filename.version'
... rechercher "<<<<<<<" et ">>>>>>>" dans filename
$ cvs tag Release-1 # ajoute une balise de version
... modifiez un peu plus ...
$ cvs tag -d Release-1 # enl�ve une balise de version
$ cvs ci -m "commentaires suppl�mentaires"
$ cvs tag Release-1 # rajoute une balise de version
$ cd # retourne � la zone de travail.
$ cvs co -r Release-initial -d old project-x
... r�cup�re la version originale dans le r�pertoire old
$ cd old
$ cvs tag -b Release-initial-bugfixes # cr�ation d'une branche (-b)
... maintenant vous pouvez travailler sur l'ancienne version (Tag=sticky)
$ cvs update
... l'arbre des sources a maintenant la balise permanente
"Release-initial-bugfixes"
... travaillez sur cette branche
$ cvs up # synchronise avec les autres d�veloppeurs de la branche
$ cvs ci -m "ajout � la branche"
$ cvs update -kk -A
... enl�ve la balise collante et oublie le contenu
... met � jour depuis le tronc principal sans le remplacement des mots-cl�
$ cvs update -kk -j Release-initial-bugfixes
... fusionne la branche Release-initial-bugfixes avec le tronc principal
... sans le remplacement des mots-cl�.
R�parez les conflits avec un �diteur
$ cvs ci -m "merge Release-initial-bugfixes"
$ cd
$ tar -cvzf old-project-x.tar.gz old # cr�e une archive, -j pour bz2
$ cvs release -d old # supprimez les sources locales (optionnel)
Options utiles � se rappeler (premier argument de cvs
) :
-n lancement sec, sans effet
-t message des �tapes de l'activit� cvs
12.1.2.7 Exportation de fichiers � partir de CVS
Pour avoir la derni�re version par CVS, utiliser � tomorrow � :
$ cvs ex -D tomorrow module_name
12.1.2.8 Administrer CVS
Ajouter un alias � un projet (serveur local) :
$ su - admin # un membre de l'�quipe
$ export CVSROOT=/var/lib/cvs
$ cvs co CVSROOT/modules
$ cd CVSROOT
$ echo "px -a project-x" >>modules
$ cvs ci -m "Maintenant px est un alias pour project-x"
$ cvs release -d .
$ exit # Ctrl-D pour quitter su
$ cvs co -d project px
... r�cup�re project-x (alias:px) de CVS vers le r�pertoire du projet
$ cd project
... faites les changements de contenu ...