CVS Login with Hudson

November 15, 2010

I've installed Hudson and got it working fine with our projects that are stored in Mercurial. I now want to do the same for our other projects, which are stored in CVS.

I was having trouble, because our CVS repository requires the user to have logged in:

Started by user anonymous
[project] $ cvs -Q -z3 -d :pserver:username@host/cvs/PATH co -P -d workspace PRODUCT/project/dev
cvs checkout: authorization failed: server host rejected access to /cvs/PATH for user username
cvs checkout: used empty password; try "cvs login" with a real password
FATAL: CVS failed. exit code=1
Finished: FAILURE

Hudson doesn't directly support CVS logins, you need to do it from the machine it's installed on. In my case this was a fedora 14 machine.

The instructions state that you should su to the user hudson is running as (hudson in my case) and run a CVS login. This didn't work for me, so I used a different user, did the cvs login, then copied the .csvpass file created in that user's home directory into /var/lib/hudson. The automatic checkouts now work.

export CVSROOT=:pserver:username@host/cvs/PATH
cvs login
cp ~/.cvspass /var/lib/hudson

Tags: cvs hudson