# [HOWTO] Mise en place de repositories sur un CVSD [update]

## jpopcenter

Bonjour tout le monde,

Je me décide à poster une méthode "simple" pour mettre en place des repositories sur un serveur cvsd.

En effet, celà fait depuis un bout de temps que je mets en place ses derniers en suivant pas-à-pas le HOWTO disponible sur http://fr.gentoo-wiki.com mais malheureusement ce dernier est la traduction d'un HOWTO qui est erroné à la base.

D'autant plus qu'une certaine confusion règne entre cvsd & cvs et que... bref, on s'y perd (là ce n'est qu'un avis personel  :Twisted Evil:  )

Toujours est-il que je me suis dit pourquoi ne pas prendre mes petits doigts et tapper en vite fait un petit script qui pour un repository nommé foo fait les choses suivantes :

- creation d'un repository dont le chemin est /foo

- ajout d'un user anonymous ayant des droits de lecture

- ajout d'un user foo ayant des droits de lecture/écriture

Voici le script : cvs.sh

```
#!/bin/sh

if [ "$1" == "" ]

then

  echo "Usage: cvs.sh <repository name>"

  exit

fi

REPOSITORY_NAME=$1

FILE_CVSD_CONF=/etc/cvsd/cvsd.conf

FILE_CVSD_INITD=/etc/init.d/cvsd

ABSDIR_CVSD_ROOTJAIL=/var/lib/cvsd

ABSDIR_REPOSITORY_JAIL=$ABSDIR_CVSD_ROOTJAIL/$REPOSITORY_NAME

CMD_CHOWN="sudo chown"

CMD_CHMOD="sudo chmod"

CMD_MKDIR="sudo mkdir"

CMD_TOUCH="sudo touch"

CMD_CVS=`whereis cvs | awk '{ print "sudo "$2 }'`

CMD_CVSD_BUILDROOT=`whereis cvsd-buildroot | awk '{ print "sudo "$2 }'`

CMD_CVSD_PASSWD=`whereis cvsd-passwd | awk '{ print "sudo "$2 }'`

CMD_CVSD_SERVER="sudo $FILE_CVSD_INITD"

if [ ! -d $ABSDIR_CVSD_ROOTJAIL ]

then

  echo "Creation du répertoire $ABSDIR_CVSD_ROOTJAIL"

  $CMD_MKDIR -p $ABSDIR_CVSD_ROOTJAIL/var/lock/cvs

  echo "Initialisation du RootJail..."

  $CMD_CVSD_BUILDROOT $ABSDIR_CVSD_ROOTJAIL

fi

$CMD_MKDIR -p $ABSDIR_REPOSITORY_JAIL

$CMD_CVS -d $ABSDIR_REPOSITORY_JAIL init

$CMD_CVSD_PASSWD $ABSDIR_REPOSITORY_JAIL +anonymous

$CMD_CVSD_PASSWD $ABSDIR_REPOSITORY_JAIL +$REPOSITORY_NAME

$CMD_TOUCH $ABSDIR_REPOSITORY_JAIL/CVSROOT/writers

$CMD_CHMOD 666 $ABSDIR_REPOSITORY_JAIL/CVSROOT/writers

echo "$REPOSITORY_NAME" > $ABSDIR_REPOSITORY_JAIL/CVSROOT/writers

$CMD_CHMOD 644 $ABSDIR_REPOSITORY_JAIL/CVSROOT/writers

$CMD_CHMOD 666 $FILE_CVSD_CONF

grep "^Repos /$REPOSITORY_NAME" < $FILE_CVSD_CONF 1> /dev/null || echo "Repos /$REPOSITORY_NAME" >> $FILE_CVSD_CONF

$CMD_CHMOD 644 $FILE_CVSD_CONF

$CMD_CHOWN -R cvsd:cvsd $ABSDIR_CVSD_ROOTJAIL

$CMD_CVSD_SERVER restart

```

Et son utilisation : 

```
sh cvs.sh foo
```

Lors du lancement du script, l'utilisateur est prié de saisir les mpd pour les users anonymous & foo

Si vous voulez revenir dans la configuration initiale post-emerge, tappez en mode root à l'ancienne (et à vos dépens  :Twisted Evil:  )

```
rm -Rf /var/lib/cvsd/*
```

N'oubliez pas non plus de virer les lignes commençants par "Repos" ne correspondant à rien, dans le fichier /etc/cvsd/cvsd.conf

Voilà  :Laughing: 

P.S.

Même si j'arrive à aller au bout de mes scripts bash, je doit avouer qu'il y a mieux comme code  :Rolling Eyes: 

P.P.S. [EDIT]

J'ai fait une grosse mise-à-jour du script car je n'avais pas remaqué qu'un problème de droit en écriture arrivait lors du commit  :Laughing: 

Pour la mise en place du serveur cvsd, c'est toujours aussi simple [root-mode on] :

```
emerge dev-util/cvsd
```

Last edited by jpopcenter on Fri Jun 03, 2005 8:17 pm; edited 2 times in total

----------

## zdra

Merci pour ta contribution.

A noter aussi subversion (SVN) qui peut être assé avantageux p/r à CVS  :Wink: 

----------

## ttgeub

Sur cvs y a aussi une tres bonne doc faite par idealx

http://www.idealx.org/doc/cvs.fr.html

----------

## jpopcenter

 *zdra wrote:*   

> A noter aussi subversion (SVN) qui peut être assé avantageux p/r à CVS 

 

Il est vrai que je n'ai entendu que des bons échos à propos de subversion  :Wink: 

Néanmoins, le problème est que même si cvs est assez saoulant à utiliser (à la main) dans son ensemble, je suis aux anges depuis que j'utilise eclipse (et ça fait plus de 2 ans que ça dure maintenant  :Twisted Evil: )

Franchement, la gestion des synchros/commit/update/add/diff est super bien pensée.

D'ailleurs, je n'arrive plus à utiliser cvs autrement aujourd'hui  :Embarassed: 

Je veux bien me mettre à subversion mais par contre, ça ne sera qu'avec un front-end graphique sympatoche donc si vous avez par hasard une piste, n'hésitez pas  :Laughing: 

----------

## laharl

 *jpopcenter wrote:*   

> Je veux bien me mettre à subversion mais par contre, ça ne sera qu'avec un front-end graphique sympatoche donc si vous avez par hasard une piste, n'hésitez pas 

 

Pour reste dans le même cadre:

http://subclipse.tigris.org/

Edit: j'utilise ça au boulot, mais ya un truc qui me revient: je crois que ça marche que

sur windows

----------

## guilc

 *ttypub wrote:*   

> Sur cvs y a aussi une tres bonne doc faite par idealx
> 
> http://www.idealx.org/doc/cvs.fr.html

 

Ouaip, mais on est passé a subversion pour les nouveaux projets  :Wink:  ça fait un peu raler l'admin sys, parceque en cas de problèmes, on peut pas traffiquer les fichiers ",v", mais sinon, les features du genre svn cp, svn mv sont un vrai plus...

Et il existe des outils de suivit de projet intimement liés a svn comme trac qui sont pas mal, donc la miggration est plutot positive  :Wink: 

----------

## ttgeub

 *guilc wrote:*   

>  *ttypub wrote:*   Sur cvs y a aussi une tres bonne doc faite par idealx
> 
> http://www.idealx.org/doc/cvs.fr.html 
> 
> Ouaip, mais on est passé a subversion pour les nouveaux projets  ça fait un peu raler l'admin sys, parceque en cas de problèmes, on peut pas traffiquer les fichiers ",v", mais sinon, les features du genre svn cp, svn mv sont un vrai plus...
> ...

 

Ah oui mais je suis d'accord, subversion est sans doute beaucoup mieux j'en doute pas. Au fait tu bosses chez idealx ? C'est comment de travailler dans une boite qui fait du libre ? T'as quelle formation ?

----------

## guilc

 *ttypub wrote:*   

> Ah oui mais je suis d'accord, subversion est sans doute beaucoup mieux j'en doute pas. Au fait tu bosses chez idealx ? C'est comment de travailler dans une boite qui fait du libre ? T'as quelle formation ?

 

Bah c'est comment... C'est normal  :Smile:  On fait du service. Certains jours c'est chiant  :Smile:  Mais l'ambiance est plutot bonne, donc ça va. Amha, qu'on bosse sur du libre ou pas, c'est a peu près pareil. Seuls les outils changent, dans le fond, c'est le meme taf.

Pour la formation, suis ingé en info (de l'IIE).

----------

