On Wed, 30 Oct 2002, Bill Moseley wrote: > At 04:47 PM 10/30/02 -0500, Jesse Erlbaum wrote: > >Web development projects can map very nicely into CVS. We have a very > >mature layout for all web projects. In a nutshell, it boils down to this: > > > > "project/" > > + apache/ > > + bin/ > > That requires binary compatibility, though. I have a similar setup, but > the perl and Apache are built separately on the target machine since my > machines are linux and the production machine is Solaris.
No, you don't need binary compatibility. You just need to design your system right and use the right tools. :-) With Perforce - http://www.perforce.com/ - you can map different directories in the repository to directories on the client with "client views". I have used that (Graham Barr came up with it there) so we could keep the binaries version controlled too. It's great. There we had all of our application software (including perl, apache, etc) distributed with perforce. With CVS or Subversion you could do something similar by setting up branches right or having a few symlinks. We had separate installations around the world serving different clients. Before we migrated from CVS to perforce we had a cvs tag for each installation, so rolling a new release was just o) make a new release number (r345), tag the files with that o) move the "installation tag" ("LosAngeles_Production" or "QA" or whatever) to the new release tag (r345). o) tell the servers to upgrade and restart the application. Perforce provides some features that makes it a bit neater, so the implementation was different but the concept the same. It worked (works actually) great. .... At another place we have a script to tag the files with a build number and then roll some tar balls. The tar balls then go to QA server and then to the production servers. There all the code is living on shared NFS servers, so rolling it out is just putting the code there and restarting the servers. Perl, Apache, etc are installed with rpms there. .... For a big project I like installing everything in /home/[project]/ - including perl, apache, mod_perl, ... - and having the whole directory version controlled. On the perl.org we have a bunch of smaller projects. There we use a shared /home/perl/ installation that gets distributed to the servers we use for production and for development. It has perl 5.8, various versions of Apache and other goodies. Each project (in /home/[project]/) then just reference that installation. Making it easy to setup a development environment on your own box is really really nice. On bigger projects I often even have several development environments installed at the same time, so I easily can work on different sub project or test different branches at the same time. [...] > Is anyone using cvs to manage updates made with web-based forms? The Twiki system and the Faq-O-Matic are using RCS on the backend to version control entries. - ask -- ask bjoern hansen, http://www.askbjoernhansen.com/ !try; do();