1 Introduction
Les codes sources sont archivés sur 2 serveurs CVS :
Les principaux projets sont
- Sdaq : serveur HESS 1
- SBig : serveurs HESS2
2 Commandes
2.1 Checkout
- Pour télécharger les sources d'un module
$ cvs -d :pserver:roche@lpnhess.in2p3.fr:2401/data/services/cvsroot login
$ cvs -d :pserver:roche@lpnhess.in2p3.fr:2401/data/services/cvsroot co SBig
- Pour télécharger uniquement un répertoire d'un module
$ mv SBig/Driver/TL2new /TL2newBof
$ cvs -d :pserver:guevara@lpnp90.in2p3.fr:/home/cvsroot co SBig/Driver/TL2new
- Permet aussi de récupérer une version tagguée :
$ cvs -d :pserver:roche@lpnp90.in2p3.fr:/home/cvsroot co -r drawertest-20090907 SBig
- ou encore la version à telle date :
$ cvs -d :pserver:roche@lpnp90.in2p3.fr:/home/cvsroot co -D "2009-10-26 10:00" SBig
2.2 Update
Permet de récupérer la dernière version.
Remarquez le -n qui permet de simuler la requête et donc de voir quels fichiers seront ajournés.
$ cvs -n update -d
M Server/Bigd/Big/Makefile
U Server/Bunny/Server/ServerStop.c
...
$ cvs status -v Server/Bigd/Big/Makefile
Status: Locally Modified
Working revision: 1.5
Repository revision: 1.5
$ cvs status -v Server/Bunny/Server/ServerStop.c
Status: Needs Patch
Working revision: 1.5
Repository revision: 1.6
$ cvs diff -r 1.6 Server/Bunny/Server/ServerStop.c
...
$ cvs update -d #(se mettre à jour)
$ cvs -d :pserver:roche@lpnp90.in2p3.fr:/home/cvsroot commit #(commit avec un autre compte cvs)
$ cvs update #(maj formelle non requise avec le même compte : cvs -n update n'affiche plus aucune difference)
Remarque : -d [à la fin] permet d'intégrer les nouveau répertoires commités.
2.3 Diff
Permet de voir les fichiers ont été modifié depuis le dernier commit.
$ cvs diff
2.4 Commit
Remarquez que la requête ci-dessous peut être faite depuis le répertoire d'un autre utilisateur, à condition toutefois d'ignorer les erreurs d'écriture dans ses répertoires CVS trouvés à partir du répertoire courrant.
Ceci permet par exemple de commiter le code de Jean-luc Panazol.
$ cvs -d :pserver:roche@lpnp90.in2p3.fr:/home/cvsroot update
$ cvs -d :pserver:roche@lpnp90.in2p3.fr:/home/cvsroot commit
2.5 Tag
$ cd ~/SBig
$ cvs status -v Makefile
Existing Tags:
drawertest-20090525 (revision: 1.4)
DrawerTest_200902 (revision: 1.4)
drawer_2009_15 (revision: 1.4)
$ cvs tag drawertest-20090907 .
$ cvs status -v Makefile
Existing Tags:
drawertest-20090907 (revision: 1.4)
drawertest-20090525 (revision: 1.4)
DrawerTest_200902 (revision: 1.4)
drawer_2009_15 (revision: 1.4)
$ cd /tmp
$ cvs co -r drawertest-20090907 SBig
3 Editing administrative files
You edit the administrative files in the same way that you would edit any other module.
Use `cvs checkout CVSROOT' to get a working copy, edit it, and commit your changes in the normal way.
4 FAQ
No space left on device
$ cvs commit
...
unable to write, file ...
No space left on device
cvs commit: cannot close temporary file /tmp/cvsSCwP1t: No space left on device
CVS passe par l'espace temporaire /tmp de la partition <racine> avant d'ajouter les fichiers dans la partition /services.
**** Access denied: Insufficient Karma
Je ne peux plus faire de commit sur mes nouveaux projets,
j'ai testé de modifier en vain mes droits d'accès.
$ cvs commit
cvs commit: Examining .
**** Access denied: Insufficient Karma (roche|bof)
cvs commit: Pre-commit check failed
...
Mathieu :
Les droits d'écriture s'octroient module par module via les fichiers d'administration du CVS :
fichiers avail et modules du module CVSROOT.
- CVS refuse d'ajouter un fichier binaire.
C'est normal car il ne peut pas faire grand chose pour les merge et surtout il rique d'y modifier -entre autre- les chaînes $ Id$ . Il faut lui préciser que c'est bien un binaire. (cf info)
The `-kb' option available with some CVS commands insures that
neither line ending conversion nor keyword expansion will be done.
$ cvs add -kb -m "libnetsnmp.so (binary)" libnetsnmp.so
$ cvs commit libnetsnmp.so
|