[Techtalk] conceptual CVS

Cynthia Kiser cnk at ugcs.caltech.edu
Fri Jul 18 16:27:39 EST 2003


CVS's client/server model is really just pull, no push options. So I
think you are going to need to go with something like one of the
scripting solutions offered in the replies. These scripts would be
less complicated if there is no need to rename files in order to deal
with CVS's limitation on interleaving directories. 

The suggestion of splitting your files so that the common files all
live in one directory and the server specific ones all live in their
own directories, and then setting up the repositories to match that is
the cleanest. Is this totally impossible? You may need some of that
scarce sys-admin time to change your httpd.conf to reflect a move of
the cfg.php and connect.php files but that is one battle that would be
worth winning (or trading off against "or just install CVS for me
instead") if you can. Or is your application written in such a way so
that you can't move or rename the config files?

If it is not possible to separate server-specific files along
directory lines or at least keep distinct config files, I think you
are going to have to do some fancy footwork so that you can keep
cfg-xtrinsic.php and cfg-atlantis.php in your repository and then
deploy them as cfg.php in the appropriate sandbox. I was thinking of
something like (on your laptop):

cvs co -d atlantis-sandbox project/dir/to/cfg-atlantis.php
cp atlantis-sandbox/dir/to/cfg-atlantis.php atlantis-sandbox/dir/to/cfg.php 

To make changes, alter the cfg.php copy, test it. Then copy it to
cfg-atltantis.php and commit. 

To deploy, I think that the "find based on mod time | tar" sounds
promising - but be sure to exclude the CVS directories to avoid
confusing anyone on atlantis who thinks they can trust the information
in them.

My $0.02. Let us know what you end up doing.
-- 
Cynthia N. Kiser
cnk at ugcs.caltech.edu


More information about the Techtalk mailing list