cvs

service CVS

doc. A. Cadiou, lors d'une session de formation destinée aux acteurs du calcul scientifique, en 2004

les CVSROOT:

  • VFdecomp: CVSROOT=/space/cvs/latp/edp (groupe edpdvlpt)
  • LGD: CVSROOT=/space/cvs/cvsroot (groupe cvs)
  • STOK: CVSROOT=/space/cvs/latp/bhe
  • marchesa: CVSROOT=/space/cvs/latp/marchesa
  • Doit etre fait par l'administrateur sytème sur protis, qui vous transmettra la valeur de CVSROOT. Se placer dans le répertoire contenant les fichiers à déposer sur le serveur CVS
  • Il faut positionner deux variables d'environnement, CVS_RSH et CVSROOT.

En tcsh:

setenv CVS_RSH ssh
setenv CVSROOT <login>@protis.univ-mrs.fr:/space/cvs/latp/belinda

et en bash:

export CVS_RSH=ssh
export CVSROOT=<login>@protis.univ-mrs.fr:/space/cvs/latp/belinda
  • A ne faire qu'une seule fois:
ultra20-henry% cd mumps
ultra20-henry% cvs init
  • on dépose les fichiers sur serveur CVS:
setenv CVSROOT henry@protis.univ-mrs.fr:/space/cvs/latp/belinda
ultra20-henry% cvs import -m "Imported sources" mumps LATP start 

Cette dernière commande crée le répertoire /space/cvs/latp/belinda/mumps sur protis.

  • Pour récupérer le code, la première fois:
cvs checkout mumps

Ceci créera le répertoire mumps sur votre disque.

Pour les fois suivantes, il suffira de faire (à condition d'étre dans le bon répertoire!):

cvs update

pour récupérer les éventuelles modifications faites par un autre utilisateur.

  • diverses docs sont disponibles sur le Net, comme ces exemples
Différences sur un document par rapport à une autre version: meld, tkdiff \\
Pour tkdiff, avec cvs, ca donne:
<code>
nemo-henry% tkdiff -r1.24 code3d.f90 &
</code>
permet de comparer le document actuel àvec la version 1.24 sous cvs. Penser à supprimer les espaces (Menu View->Ignore white spaces)
Pour récupérer une ancienne version, pmar exemple la 1.24:
<code>
nemo-henry% cvs -r1.24 update code3d.f90 
</code>

<code> useradd -g cvsgrp -u /home/cvs au lieu de useradd -g cvsgrp -d /home/cvs cvs </code> Questions à poser: - p12: création de CVSROOT dans $CVSROOT, mais que se passe t il si plusieurs projets? +ieurs $CVSROOT? et que se passe t il si un projet contient plusieurs modules? ensuite, pour identifier une base, c'est le répertoire contenant au moins CVSROOT qui l'identifie: <code> hobbit-henry% setenv CVSROOT protis:/space/cvs/latp hobbit-henry% cvs status Cannot access /space/cvs/latp/CVSROOT No such file or directory </code> il faut que tous les répertoires de la base soient accessibles en écriture au groupe cvs <code> mimosa-root% find . -type d -exec chgrp edpdvlpt {} \; permet de changer le groupe pour tous les reprtoires d'un projet </code> Problème: on positionne CVSROOT à une certaine valeur, par exemple /home/cvs/base2 si on fait “cvs status”, cette commande en fait va afficher des informations sur /home/cvs/base1 parce que il y a des repertoires CVS dans le répertoire courant! Quelle doit etre la stratégie?: - on doit accéder à une base cvs par ssh - dans notre répertoire de travail, il existe deja des projets cvs - il faut donc donner le nom du répertoire qu'on veut récupérer, par exemple VFdecomp après avoir défini la base à /space/cvs/latp/edp ===== sources d'information ===== http://fusion.gat.com/docview/cvs_intro.html Il semble qu'il suffise de créer le répertoire $CVSROOT avec le setgid pour que tout se passe bien sur les sous répertoires? ===== Comparaison CVS-subversion ===== Voici un point de vue: <code> “Also you can browse your repository by using cvsweb. I'm evaluating to use a repository to store my C/C++ projects, but I admit that I'm tempted to use subversion in place of cvs. One of the best advantages, from my point of view, of subversion versus cvs are: a) Copies and renaming files seem better under subversion. In most cases with CVS you will loose the files history. b) (I read that of) Better binary file handling, it is usefull when you have to work with a lot of images such under web development. In fact with cvs if you commit 100 modifications to an image file, the remote repository will have 100 copies of the same file….what a waste of space. Subversion uses an internal algorithm to handle binary files, so in pratice it does not store a new copy of an image when you commit a modification. Only differences are send. In pratice binary files are handled the ``same way as text files, more or less…. ;) I used CVS and Subversion for few days only, so point a) is not that clear to me. Point b) is something that web developers should think of. IMHO, CVS seems more fine, with some limitations, to text-only projects. For a web-development, due to lot of images, I'd try subversion. There exists an Apache module for subversion, but it works under 2.x. The reason seems due to web_dav support of 2.x series. CVS is a more stable and mature product, though. Many CVS competitors, such as subversion, offer the import of an existing CVS repository, so starting with CVS would let you to switch to another version control ``easily…if you evaluate that CVS doesn't do something you need.” </code>

  • cvs.txt
  • Dernière modification : 2017/08/25 09:56
  • de 127.0.0.1