logo.png

CVS

MAKEFILE

TFTP

NFS

DHCP

CORBA

RPM


Pince à sertir

Serveur de boot

Poste client

Switchs labo

Home Up


Contents



1 Introduction

Les codes sources sont archivés sur 2 serveurs CVS :

  • un sur lpnp90.in2p3.fr
    [roche@lpnp90]~% ls /home/cvsroot 
    AGN               kaskade           parisanalysisuser  SBig
    analysis          kaskade_cat       parispointing      Sdaq
    corsika           kaskade_cpp       parisprograms      Seminaires
    corsika-6600      ledcontrol        parisreco          SeminaireWeb
    CVSROOT           mathutils         parisspectrum      simudb
    DBase             MemAna            parisusers         spectrum
    doc               model3D           PersoJpt           thesejulien
    globularclusters  modelisation      PersoLoic          thesemarianne
    gpib_instruments  ModelWeb          PersoMathieu       thesenicolas
    gtkextra          morphology        PointingWeb        trigger
    hessana           neural            Pydaq              triggerl2
    HESSFpga          onlinecalibrator  rfio               usb_instruments
    HESSIINote        owis              RootTest           waverunner
    HESSPat           papers            samguide           webcam
    hessphp           parisanalysis     samtest
    
  • l'autre hébergé à Berlin (pour le code de camera2 par exemple)

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
    

Home Up

This document is also available in PDF and PostScript format.



2016-02-15