in reply to CVS CGI & Perl

This is a pretty wide-open question, but I'll relate my experience:

I worked for a dotcom that used CVS, with virtually all of our code being perl and SYBASE-stored procedure source.

We had about 8 developers -- 3 on the Sybase side, 5 on the perl side. We also had multiple boxes (prod/test/dev).

On the dev box -- Each of the 5 perl developers had 2 webroots (Apache -- http/https) spawned to their ~ dir, each mapped two diffent ports (Mine was 7001 for http, 7002 for https). All development/unit testing was done in each developer's home directory.

Our repository, IIRC, looked like this, using Module in the cvs context, not CPAN! :)

Module:cgi
Module:js
Module:sql
Module:site_perl

Our site_perl CVS-Module did NOT contain CPAN modules, only our common scripts and proprietary modules.

The dev. box main webroot (eg http://dev) was owned by webuser, and we did not have access to it. After a commit, the SR developer, who futher tested the code, would su webuser, and copy the code to appropriate spot in the http://dev directory.

As far as general advice: CVS Keywords are your friend. We used $Author$, $Date$, and $ID$ -- and this saved a lot of arguements along the lines of "Who in the @#$^! committed this crap, and when the @#$% did they do it???"

A good book, IMHO, on Open-Source development with CVS is Karl Fogel's.

HTH!!
ÅßÅ×ÅßÅ
"It is a very mixed blessing to be brought back from the dead." -- Kurt Vonnegut