4- Découverte de CVS Cvs Commit / Log / Diff / Update

, par  Yvonnick Esnault , 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

Annonces

  • Annuaire LibreNord

    Retrouvez l’annuaire de logiciels libres créé par l’association Club Linux Nord-Pas de Calais sur le site suivant http://www.librenord.org

Sites favoris Tous les sites

96 sites référencés dans ce secteur

Brèves Toutes les brèves