RessourcesLe livre (online) Open Source Development with CVS by Karl FogelVersion Control with CVS, sur devshed.com |
Installation du repository :créer un répertoire cvsroot (mkdir cvsroot), puis créer une variable d'environnement $CVSROOT pointant sur ce répertoire (export CVSROOT=/home/olly/cvsroot, par exemple)cvs init crée ensuite le repository dans le répertoire $CVSROOT. Mettre un projet sous CVScvs import : aller dans le répertoire contenant les sources, puis cvs import -m ``sources initiales'' rep mon_projet start. rep est le chemin du répertoire dans le repository contenant le projet (ici $CVSROOT/rep/), kohonen est un nom donné au projet, start est un ``release tag?''.édition du fichier module : permet de remplacer les longs répertoire par un nom de module. cvs add xxx.c permet d'ajouter le fichier xxx.c au repository (seulement après un checkout), prends effet après un cvs commit. cvs remove xxx.c permet d'effacer xxx.c du repository Récuperer un projet sous CVS en localcvs checkout prj : crée un nouveau répertoire nommé prj, puis y insére les fichiers sources. prj est soit un nom de module, soit un répertoire du repository. S'il s'agit d'un chemin d'accès comportant plusieurs sous-répertoire, le chemin sera intégralement recréé à partir du répertoire courant. Au lieu d'un projet, il est également possible de récuperer uniquement un fichier du projet. Ex : cvs checkout prj/main.cppRécupérer un projet sur une machine distantedepuis une machine de confiance (via rsh)La connection au serveur cvs sur une machine distante se fait via rsh. Il est donc nécessaire de placer dans le .rhosts du $HOME de l'utilisateur gérant le projet sur la machine distante une ligne autorisant la connection d'un utilisateur donné (vous) depuis la machine locale. Cette ligne est de la forme : hostname userL'utilisation d'un repository distant ne diffère alors que par le format du nom du repository: :METHOD:USER@HOSTNAME:/path/to/repository Par exemple : cvs checkout -d:server:olly@quoi.nimporte.fr:/home/olly/cvsroot autres cas : via connection dialup, avec authentificationLa premiere etape consiste a configurer la partie serveur : il faut que inetd lance cvs pserver lorsqu'il recoit une connection sur le port cvs (2401 par defaut). Pour cela, il faut placer la ligne suivante dans le fichier inetd.conf : cvspserver stream tcp nowait root /usr/local/bin/cvs cvs -allow-root=/home/olly/cvsroot pserver. Il est egalement necessaire d'ajouter dans /etc/services l'entree suivante : cvspserver 2401/tcp. On relance alors inetd et le tour est joué.Côté client, on se connecte de la fàçon suivante : -1ère étape, login sur la machine distante : cvs -d:pserver:user@ma.machine.com:/chemin/vers/cvsroot login
- 2eme étape, récupération des sources du projet (prj dans cet exemple) cvs -d:pserver:user@ma.machine.com:/chemin/vers/cvsroot checkout prj Si l'on souhaite autoriser l'accès a des tierces personnes sans
pour autant divulguer son nom d'utilisateur, il est nécéssaire
de créér un fichier passwd sour ~/cvsroot.
Chaque ligne correspond a un utilisateur autorisé du cvspserver,
et comprends un nom d'utilisateur ainsi qu'un password encrypté.
#!/usr/bin/perl srand (time());
print "${crypttext}\n"; ensuite %> cvscrypt texte donnera quch comme WngvB7xtQchkg, que l'on
copie-collera dans passwd
Récupération des modifications au projet effectués par d'autres personnescvs update : cette commande éxécuté depuis le répertoire de travail permet de mettre à jour la version de travail, notamment si la version du repository a été modifiée par d'autres développeurs.cvs diff xxx.c : permet de comparer la version de xxx.c obtenue lors du checkout avec celle de la copie de travail (dans le répertoire courant). cvs diff -u permet d'obtenir une version plus lisible cvs commit xxx.c : stocke xxx.c dans le repository, après avoir lancé l'éditeur déterminé par $CVSEDITOR afin d'écrire une description des modifications. Pour plus de simplicité, il est possible de faire directement cvs commit -m ``description des modifications'' xxx.c. cvs release -d prj : avec le répertoire prj dans le répertoire
courant, ceci permet d'effacer la copie de travail de prj. release permet
habituellement de vérifier que toutes les modifications ont été
``committed''.
Ressources additionnellesLe livre (online) Open Source Development with CVS by Karl FogelAbout this document ...CVS (Concurrent Versions System)This document was generated using the LaTeX2HTML translator Version 96.1-h (September 30, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds. The command line arguments were:
The translation was initiated by Olivier ELEMENTO on mar fév 1 09:19:15 CET 2000 Olivier ELEMENTO |
cvs init crée ensuite le repository dans le répertoire $CVSROOT.
édition du fichier module : permet de remplacer les longs répertoire par un nom de module.
cvs add xxx.c permet d'ajouter le fichier xxx.c au repository (seulement après un checkout), prends effet après un cvs commit.
cvs remove xxx.c permet d'effacer xxx.c du repository
L'utilisation d'un repository distant ne diffère alors que par le format du nom du repository:
:METHOD:USER@HOSTNAME:/path/to/repository
Par exemple : cvs checkout -d:server:olly@quoi.nimporte.fr:/home/olly/cvsroot
Côté client, on se connecte de la fàçon suivante :
-1ère étape, login sur la machine distante :
cvs -d:pserver:user@ma.machine.com:/chemin/vers/cvsroot login
Il suffit ensuite de taper son mot de passe sur machine.com pour
s'y logger.
- 2eme étape, récupération des sources du projet (prj dans cet exemple)
cvs -d:pserver:user@ma.machine.com:/chemin/vers/cvsroot checkout prj
Si l'on souhaite autoriser l'accès a des tierces personnes sans
pour autant divulguer son nom d'utilisateur, il est nécéssaire
de créér un fichier passwd sour ~/cvsroot.
Ce fichier est de la forme :
olly:rKa5jzULzmhOo
anonymous:XR4EZcEs0szik
melissa:tGX1fS8sun6rY
Chaque ligne correspond a un utilisateur autorisé du cvspserver,
et comprends un nom d'utilisateur ainsi qu'un password encrypté.
Pour encrypter un password, il faut écrire le petit programme
en perl suivant (nommé cvscrypt par exemple):
#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65
: 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}\n";
ensuite %> cvscrypt texte donnera quch comme WngvB7xtQchkg, que l'on
copie-collera dans passwd
cvs diff xxx.c : permet de comparer la version de xxx.c obtenue lors du checkout avec celle de la copie de travail (dans le répertoire courant). cvs diff -u permet d'obtenir une version plus lisible
cvs commit xxx.c : stocke xxx.c dans le repository, après avoir lancé l'éditeur déterminé par $CVSEDITOR afin d'écrire une description des modifications. Pour plus de simplicité, il est possible de faire directement cvs commit -m ``description des modifications'' xxx.c.
cvs release -d prj : avec le répertoire prj dans le répertoire
courant, ceci permet d'effacer la copie de travail de prj. release permet
habituellement de vérifier que toutes les modifications ont été
``committed''.
This document was generated using the LaTeX2HTML translator Version 96.1-h (September 30, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -split 0 cvs.tex.
The translation was initiated by Olivier ELEMENTO on mar fév 1 09:19:15 CET 2000