[PHP] CVS handled PHP projects
Hi, [a little background, feel free to skim] The company I have been working for have been considering moving over to a CVS based version control system for a while and I have been elected to investiate the fesability. We have a network of PHP files linked together via include / require / require_once etc inside the source tree in a multitude of directories. A sample tree structure might be something like: + Project Base files | +-- Core Handlers (mysql, sessions, authentication, security etc) +-- Data Handlers (abstraction layer between project and various db models) +-- General Functionality (smtp / nntp / imap abstract classes as well as custom functions for things like data conversion) +-- Output Handlers (conversion modules for things like outputting stuff in XML / HTML / XHTML / UML / CSV / even some things as word documents etc) [ stop skimming here ] Because these files are stored in the CVS repository, if I was to check out (for example) an XML output handler and make some modifications to the encoding types ... how would I test my changes before commital? (I obviously wouldnt want to break the repository files) As these files need to be executed via a web browser, I can only think I would have to check out *all* the files, and then point my webserver at my local directory. Then I only check back in the ones I change, releasing the others. This is not too bad if Im on my own but when multiple people are working on the same tree together there will be locks all over the place as CVS wont know which file I am working on. It will just know Ive checked out all the files. Ideas and Samples of how other people have broached this issue are most welcome. Please include my email address in the reply and remove the [PHP] tag from the subject. Thanks -- Dan Hardiker [[EMAIL PROTECTED]] ADAM Software Systems Engineer First Creative Ltd -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] CVS handled PHP projects
At 10:08 AM +0100 2/5/02, Dan Hardiker wrote: As these files need to be executed via a web browser, I can only think I would have to check out *all* the files, and then point my webserver at my local directory. Then I only check back in the ones I change, releasing the others. Yes, you need to use a local copy of the entire site for development. If you're doing your editing on a machine not running a web server, PHP and a database this causes some problems. To get around this I generally run two versions of a site on the server. I make and verify all the changes on a development version then move the entire development site to the live server. This can still be tricky, as you don't want the development site working with the live data. So you need to run a test database as well. This is not too bad if Im on my own but when multiple people are working on the same tree together there will be locks all over the place as CVS wont know which file I am working on. It will just know Ive checked out all the files. You need to do more reading on the way CVS works. Everyone can work on whatever files they like. There won't be any locks at all. Except when someone is actively checking in some modifications (typically a few seconds). The C in CVS means concurrent. Which means multiple users working on the files at once. ...R. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] CVS handled PHP projects
Thanks for the input, for added information - we have a multitude of servers, 1 software development one plus several live servers. The aim is to have the live servers cvsup the latest STABLE branch from the development / deployment server... the issue of concurrent working is strickly in the development realm as there are usually 2 / 3 developers working on the same area of the project at the same time (one might modify the input algorythms, while another improves the security for example). I'll see what I can do with your suggestion.. Ive read through the entire documentation at cvshome.org (man that was a labourous task) and I still dont think I grasp it fully... guess its time to jump in at the deep end. Thanks -- Dan Hardiker [[EMAIL PROTECTED]] ADAM Software Systems Engineer First Creative Ltd At 10:08 AM +0100 2/5/02, Dan Hardiker wrote: As these files need to be executed via a web browser, I can only think I would have to check out *all* the files, and then point my webserver at my local directory. Then I only check back in the ones I change, releasing the others. Yes, you need to use a local copy of the entire site for development. If you're doing your editing on a machine not running a web server, PHP and a database this causes some problems. To get around this I generally run two versions of a site on the server. I make and verify all the changes on a development version then move the entire development site to the live server. This can still be tricky, as you don't want the development site working with the live data. So you need to run a test database as well. This is not too bad if Im on my own but when multiple people are working on the same tree together there will be locks all over the place as CVS wont know which file I am working on. It will just know Ive checked out all the files. You need to do more reading on the way CVS works. Everyone can work on whatever files they like. There won't be any locks at all. Except when someone is actively checking in some modifications (typically a few seconds). The C in CVS means concurrent. Which means multiple users working on the files at once. ...R. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php