4- Découverte de CVS
par
popularité : 1%
CVS est le gestionnaire de version de fichiers le plus répandu. Voici une installation pas à pas, puis une introduction aux commandes de bases.
Travaillons et Versionnons !
C’est bien beau tout çà, mais l’on a du travail ! Il faut rajouter le texte "je travaille sur la deuxième ligne" dans notre fichier premier_fichier.
yvo@raclette:~/mondossiercvs/SuperProduit$ echo "Je travaille sur la seconde ligne" >> premier_fichier
yvo@raclette:~/mondossiercvs/SuperProduit$ cat premier_fichier
première ligne
Je travaille sur la seconde ligne
yvo@raclette:~/mondossiercvs/SuperProduit$
Et comme nous sommes contents de notre travail, nous pouvons l’enregistrer dans la base cvs :
yvo@raclette:~/mondossiercvs/SuperProduit$ cvs commit -m "Travail sur la seconde ligne Ok"
cvs commit: Examining .
Checking in premier_fichier;
/var/lib/cvs/SuperProduit/premier_fichier,v <-- premier_fichier
new revision: 1.2; previous revision: 1.1
done
yvo@raclette:~/mondossiercvs/SuperProduit$
Le résultat de la commande cvs commit est explicit. Cvs a trouvé des modifications au niveau du fichier premier_fichier
et a incrémenté le numéro de version.
Comme pour la commande cvs import, l’option -m a permis de donner une description pour cette mise à jour.
CVS log, après travail
Re-exécutons la commande cvs log après le cvs commit :
yvo@raclette:~/mondossiercvs$ cvs log SuperProduit/
cvs log: Logging SuperProduit
RCS file: /var/lib/cvs/SuperProduit/premier_fichier,v
Working file: SuperProduit/premier_fichier
head: 1.2
branch:
locks: strict
access list:
symbolic names:
V0: 1.1.1.1
Recup: 1.1.1
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
----------------------------
revision 1.2
date: 2004/03/30 21:42:40; author: yvo; state: Exp; lines: +1 -1
Travail sur la seconde ligne Ok
----------------------------
revision 1.1
date: 2004/03/30 20:52:20; author: yvo; state: Exp;
branches: 1.1.1;
Initial revision
----------------------------
revision 1.1.1.1
date: 2004/03/30 20:52:20; author: yvo; state: Exp; lines: +0 -0
Enregistrement de Super Produit dans le cvs
=============================================================================
Nous constatons que nous sommes toujours dans la même branche nommée Recup avec sa version V0.
De plus, par rapport au premier cvs log, un paragraphe est ajouté : revision 1.2. Il reprend bien la description donnée à l’aide de l’option -m.
CVS Status
La commande cvs status est utile pour voir l’état d’un fichier local par rapport à un fichier distant.
Exemple
yvo@raclette:~/mondossiercvs/SuperProduit$ cvs status premier_fichier
===================================================================
File: premier_fichier Status: Up-to-date
Working revision: 1.2 Tue Mar 30 21:40:40 2004
Repository revision: 1.2 /var/lib/cvs/SuperProduit/premier_fichier,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
yvo@raclette:~/mondossiercvs/SuperProduit$
Le status est ici Up-to-date, aucune modification est présente entre le fichier premier_fichier
local et le fichier premier_fichier
du serveur.
Modifions maintenant ce fichier :
yvo@raclette:~/mondossiercvs/SuperProduit$ echo "Troisième ligne" >> premier_fichier
puis relançons cvs status :
yvo@raclette:~/mondossiercvs/SuperProduit$ cvs status premier_fichier
===================================================================
File: premier_fichier Status: Locally Modified
Working revision: 1.2 Tue Mar 30 21:40:40 2004
Repository revision: 1.2 /var/lib/cvs/SuperProduit/premier_fichier,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
yvo@raclette:~/mondossiercvs/SuperProduit$
Le fichier est maintenant dans le statut Locally Modified, soit en français modifié localement. Logique non ? ;-)
Cvs diff
Comme le cvs status nous indique une différence, nous souhaitons la voir plus précisément :
yvo@raclette:~/mondossiercvs/SuperProduit$ cvs diff -r 1.2 premier_fichier
Index: premier_fichier
===================================================================
RCS file: /var/lib/cvs/SuperProduit/premier_fichier,v
retrieving revision 1.2
diff -r1.2 premier_fichier
2a3
> Troisième ligne
yvo@raclette:~/mondossiercvs/SuperProduit$
Nous voyons donc que la différence entre les deux fichiers se situe au niveau de la ligne 2-3 avec pour changement :
> Troisième ligne
.
Création d’un patch
yvo@raclette:~/mondossiercvs$ cvs diff -u -r1.2 SuperProduit
cvs diff: Diffing SuperProduit
Index: SuperProduit/premier_fichier
===================================================================
RCS file: /var/lib/cvs/SuperProduit/premier_fichier,v
retrieving revision 1.2
diff -u -r1.2 premier_fichier
--- a/SuperProduit/premier_fichier 30 Mar 2004 21:42:40 -0000 1.2
+++ b/SuperProduit/premier_fichier 30 Mar 2004 21:56:12 -0000
@@ -1,2 +1,3 @@
première ligne
Je travaille sur la seconde ligne
+Troisième ligne
yvo@raclette:~/mondossiercvs$
Cvs update
Imaginons maintenant que nous sommes pas seuls à travailler sur SuperProduit. Des modifications à premier_fichier peuvent apparaître, il ne faut donc pas trop tarder à faire notre commit.
Mais au lieu de se heurter à des problèmes possibles lors du commit (votre collègue a modifié la même ligne), il est bon de mettre à jour notre fichier localement.
Cette mise à jour n’efface pas le travail que l’on a fait depuis le dernier commit ou checkout (ici, le travail en question est d’avoir rajouté la troisième ligne). Si toutefois un collègue a travaillé sur le fichier, cela est mise à jour dans notre répertoire local.
yvo@raclette:~/mondossiercvs/SuperProduit$ cvs update
cvs update: Updating .
M premier_fichier
yvo@raclette:~/mondossiercvs/SuperProduit$
Apparement, pas de modification effectuée par un collègue ! ;-)
Stop !
Nous nous arrêtons là pour cette approche pas à pas de CVS. Vous trouverez d’autres Howto plus complets sur le web tels que :
-
http://www.idealx.org/doc/cvs.fr.html
-
http://www.loria.fr/cgi-bin/molli/wilma.cgi/doc
Le site officiel est http://www.cvshome.org/
- TortoiseCVS - Client graphique pour Ms Windows
http://www.tortoisecvs.org/
- Guide de l’utilisateur TortoiseCvs (en français)
<a
href="http://cedric.babault.free.fr/TortoiseCVSDoc/UserGuide_fr.html#begin.whattortoisecvs"> http://cedric.babault.free.fr/TortoiseCVSDoc/UserGuide_fr.html
Commentaires