Quelques notes pour démarrer avec CVS
Un tutorial qui semble OK http://cvsbook.red-bean.com/cvsbook.html
Installation du répertoire CVS :
setenv CVSROOT /usr/local/reposit
cvs init
creation du groupe cvs in /etc/group
cd /usr/local/reposit
chgrp -R cvs .
chmod ug+rwx . CVSROOT
Remplir le projet avec les sources
- se logger sous id cmic
- newgrp cvs
- cd managip (rep des sources originales pas encore cvs'ed)
- cvs import -m "Projet ManagIP?" managip vendortag releasetag .... l'importation se fait vers /usr/local/reposit/managip
- Puis prendre une copie de travail depuis le repository :
cd ~
cvs checkout managip #copie des sources dans ~/managip et creation d'un repertoire
#CVS dans ~/managip
Session de travail
cd ~/managip
emacs module.cgi #modif d'une source, puis sa sauvegarde
cvs commit #la placer dans le repository (ou C-x C-q dans Emacs)
Voir les differences :
cvs diff #toutes les diff entre la copie de
#travail et celle du reposit
Voir la version d'un module :
cvs status module.pl #(pour tous les modules : cvs status)
Ajouter un fichier au reposit :
- - le créer dans le repertoire de travail
- - cvs add fichier.pl
- - cvs commit fichier.pl (pour le mettre dans le repository)
ou : cvs ci -m "Commmentaire du log" fichier.pl
Récupérer depuis le reposit des source mises a jour :
cd ~/managip
cvs update
Revenir en arrière sur un commit
Le commit précédent a généré la version 1.6. Verifier le différence avec la version précédente 1.5
cvs diff -r1.5 fichier.pl
Récupérer la version précédente dans le même fichier :
cvs update -p -r1.5 fichier.pl > fichier.pl
Editer fichier.pl, version 1.5 puis commit. Le fichier.pl est maintenant en version 1.7
Insérer des macros dans la source : La revision
# exemple : $Revision$
Autre keywords :
$Author$ $Date$
$Id$ #Le nom, la date, l'auteur, etc...
$Source$
$Log$ #pour integrer des commentaires par revision dans la source.
$Name$ #Le nom du sticky tag comme $Name: release_1_14 $
$Header$ #tout sauf le Log
Pour mettre a une même révision tous les modules
cd ~/managip ; touch *
cvs commit -r3 managip #tous les modules de managip sont alors Revision
#3.1 (et non pas 3)
Pour récupérer les sources a partir d'une rev. donnée :
cd ~
cvs checkout -r 3 managip # recup de la version 3.x
Pour créer un snapshot (pour release) qui couvre tous les modules, utiliser les tags
cvs tag Rel-1
Récuparation des sources au snapshot pour distribution :
cd ~
cvs checkout -d managipRel_1 -r Rel-1 managip #Recup dans managipRel-1 des
#sources de managip au tag Rel-1
ou encore
cvs update -r Rel-1 #si on est deja dans le rep. managip
Attention : on ne peut plus modifier les sources récupérées dans managipRel-1 (sticky tag). Il faut au préalable faire un reset du sticky tag :
cvs update -A
Ou alors trannsformer ce tag en branche :
cvs tag -b -r Rel-1 Rel-1-p2 #nouvelle branche Rel-1-p2
cvs update -r Rel-1-p2 #on peut editer et faire des commits
Pour connaitre les version deja taggees :
cvs history # voir egalement les options de history avec cvs history -z
cvs log fichier.c # voir les tags deja créés
avec Emacs : C-x vl
Pour créer une branche :
cd managip
cvs tag "Rel-n" #Release tag facultatif)
cvs tag -b "Rel-n-branch-1" #Nouvelle branche basee sur Rel-n
cvs update -r "Rel-n-branch-1"
Pour connaitre les versions déja taggées :
cvs history # voir egalement les options de history
cvs history -n managip -e # tous les tgas de managip
Pour effacer un module mais pouvoir le retrouver ulterieurement :
cvs commit module.c #pour etre sur qu'il est dans CVS
rm module.c #effacement du document de travail
cvs remove module.c #signifier a CVS qu'on efface
cvs commit module.c #effacement effectif
Pour effacer définitivement un projet entier
cvs release -d managip
rm -rf managip
CVSNT et clients Windows (tm)
CVSNT fonctionne sous Windows(tm), Solaris, Mac, RHEL4. Il présente entre autres l'avantage de mieux gérer les binaires (diff sur les binaires). L'installation sous Windows NT est un peu casse tête. On peut s'aider de [cette page]. Le site officiel est http://www.march-hare.com/cvspro/ . Ne pas oublier [la référence des commandes de CVSNT]. On peut utiliser [TortoiseCVS] en tant que client CVS sous Windows(tm). Les menus sont intégrés dans l'explorateur et l'interface est en français.
+Commandes Emacs pour CVS
C-x C-q CVS commit and quit (exit C-c c)
C-x v= CVS diff in another window
C-x v v CVS commit
C-x v i CVS add file
C-x v l CVS view history and tags
C-x v s CVS create snapshot (?)
C-x v r CVS retrieve a snapshot
Voir aussi la page Cmic/Computing?, paragraphe sur Emacs tools and tips
--Cmic
|