November 24, 2024

I’ve been adding a lot of mods to the Christian Debate forum. And I wanted to put all the code into cvs so that I can roll back changes if I need to. But, in order to do that, I needed to setup a cvs server. It turned out that it’s not as hard to do as I thought.

First off, I verified that I had cvs installed:

$rpm -qa | grep cvs
cvs-1.11.2-8

I then created a cvs user and group under “System Setting/Users and Groups”. And I also added myself to the cvs group.

I then created a cvs directory (as root):

$su
$mkdir /cvs

Then I created the repository config files:

$cvs -d /cvs init
$chown -R cvs /cvs
$chgrp -R cvs /cvs

I then created the file /etc/xinetd.d/cvspserver with the following contents:

service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = cvs
group = cvs
server = /usr/bin/cvs
server_args = -f –allow-root=/cvs pserver
passenv = PATH
disable = no
}

I verified that the file /etc/services had the following:

cvspserver 2401/tcp # CVS client/server operations
cvspserver 2401/udp # CVS client/server operations

In the file, /cvs/CVSROOT/passwd, I added:

cvs::cvs
myself::cvs

Then I restarted xinetd:

$/etc/rc.d/init.d/xinetd.d restart

And then tested the cvs server:

$telnet localhost 2401
cvs [pserver aborted]: bad auth protocol start:

Actually, it didn’t all go as straight as this when I did it. But this explanation is the more straight path to do it.

If you have errors when you restart xinetd, look in the file /var/log/messages for some clues. One thing that stumped me for a little bit is that the “{” in the cvspserver file needs to be on it’s own line. One website had it as “service cvspserver {” and that didn’t work for me.

After that, you should do a reboot before actually using cvs to make sure all the permissions is right.

Links:
CVS Help
Installing cvs server on redhat linux 8.0
HOW-TO Install and Configure a CVS Repository Server
Installing CVS on Linux
CVS Configuration on RedHat Linux 6.0