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 |