CVS : Concurrent Version System

CVS est un système permettant à un ensemble de personnes de travailler sur le même projet. Il peut s'agir, bien sûr, de codes sources mais également de la rédaction d'un livre (par exemple) : CVS est un gestionnaire de sources.

Le gros avantage de CVS est de permettre une gestion quasi automatique des modifications. Lorsque vous travaillez à plusieurs sur le même groupe de fichiers, CVS garde l'historique des modifications et vous permet de revenir sur n'importe quelle ancienne version enregistrée. Lorsqu'un projet nécessite l'intervention de plusieurs programmeurs ou que le volume des sources est très important, CVS devient indispensable.

 

LES DEUX PARTIES DE CVS

Le repository

Il s'agit de l'endroit où se trouvent les sources (aussi bien des sources de programmation que TeX par exemple). C'est ici que CVS fera son travail de gestion en recevant les modifications de certains programmeurs et en les ré-expédiant sur demande aux autres. Habituellement, le repository est placé sur une machine qui n'est pas celle de développement. Elle fera office de serveur de fichiers intelligent, en somme.

La partie Client

Lorsque vous vous connectez à un serveur CVS pour récupérer des sources ou simplement les différences entre les vôtres et celle du serveur, vous utilisez la partie cliente de CVS.

Dans un premier temps, il vous faudra indiquer où se trouvent les données à télécharger, bref le repository. Pour ce faire, il suffit de renseigner la variable d'environnement CVSROOT.

Ensuite vous pourrez utiliser les commandes de CVS pour vous connecter et télécharger.

EXEMPLE

Voyons ensemble comment se passe une connexion à un serveur CVS, ici, celui du projet GNOME. Nous partirons du principe que, dès maintenant, votre connexion InterNet est active.

Première chose : exporter la variable d'environnement CVSROOT :

exportCVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/ gnome'

A présent que CVS sait où chercher les sources, nous pouvons nous connecter au serveur :

cvs login

Ici, un mot de passe vous sera demandé. Validez simplement (aucun mot de passe). Dans la plupart des cas, les utilisateurs "anonymous" n'ont pas besoin de mot de passe, car ils ne font que récupérer les informations mais n'en envoient pas.

Vous êtes maintenant connecté. Placez-vous dans le répertoire où devra être placée l'arborescence des sources, /usr/local/src par exemple.

Récupérez l'ensemble des sources par :

cvs -z3 checkout glib gtk+ imlib ORBit gnome-libs gnome-core

CVS téléchargera les modules glib, gtk+, imlib, ORBit, gnome-libs et gnome-core avec une compression -z3. Le chiffre suivant le paramètre -z indique le taux de compression, NE DEPASSEZ JAMAIS 3 ! La compression consomme beaucoup de ressources processeur et le fait de télécharger avec -z9 pourrait handicaper les autres utilisateurs, et, au pire, pousser les responsables du projet à interdire les connexions anonymes.

Par la suite, vous utiliserez une commande du genre :

cvs -z3 update -Pd glib gtk+

Afin de mettre à jour uniquement les modules glib et gtk+.

Notez qu'il existe un utilitaire appelé tkcvs qui fait office de frontal à CVS sous X.

Si vous désirez utiliser CVS pour tenir périodiquement vos sources à jour, rien ne vous empêche de créer un script shell ad hoc et de le placer dans votre crontab. De cette manière, vous pourrez récupérer les mises à jour de vos logiciels préférés en pleine nuit sans avoir un lendemain difficile.

 
Exemple de serveur CVS :

GNOME

export CVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/gnome'

cvs login

Pas de mot de passe

cvs -z3 checkout glib gtk+ imlib ORBit gnome-libs gnome-core

cvs -z3 update -Pd glib gtk+ imlib ORBit gnome-libs gnome-core

GOLGOTHA

export CVSROOT=':pserver:anonymous@cvs.kd- dev.com: /ho me / golgotha /cvsroot

cvs login

Pas de mot de passe

cvs -z3 checkout golgotha

cvs -z3 update golgotha

WINDOW MAKER

export CVSROOT=':pserver:anoncvs@cvs.net-com m u n i ty. com : / gnu step'

cvs login

Mot de passe : anoncvs

cvs checkout -d WindowMaker wm

cvs update

 


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".