Easy Setup of a CVS server on Debian Etch

I tore my hair out over this for quite a while yesterday. Hopefully this might help someone else (and as a reminder to my self if I ever need to do this again). Ideally I wanted the following scenario:

– developer account ‘hamish’ who can read/write to the cvs server
– an anonymous account ‘anon’ who can only read from the cvs server

I wanted the developer accounts to connect with ssh and anon via pserver, however…this seems like a mission! Perhaps this is why sourceforge (who do it this way) have a horrible delay between the developer and anonymous servers – maybe the 2 schemes wont cooperate nice and easily!?

Anyway, so I decided to use plain old pserver for both developer and anonymous account. This made my life a lot easier, and I’m not that paranoid about security :)

Anyway, here goes…
1. Install cvs and cvsd

apt-get install cvs cvsd

When configuring cvsd I was asked which repositories to serve. I typed ‘/cvs’.

This means my repository will be available at cvs.myserver.com/cvs

2. Initialise the repository

cvs -d /var/lib/cvsd/cvs init

add the following line in /var/lib/cvsd/cvs/CVSROOT/config:
LockDir=/tmp

3. Allow write access to repository

chown cvsd:cvsd /var/lib/cvsd/cvs

4. Allow history file to be written

chown cvsd:cvsd /var/lib/cvsd/cvs/CVSROOT/history

5. Add developer use account

cvsd-passwd /var/lib/cvsd/cvs hamish

6. Allow developer to write to repository

echo “hamish” > /var/lib/cvsd/cvs/CVSROOT/writers

7. Setup anonymous account

cvsd-passwd /var/lib/cvsd/cvs anon

That’s it! Good luck!

Leave a Reply