[PHP] CVS handled PHP projects

2002-05-02 Thread Dan Hardiker

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

2002-05-02 Thread Richard Archer

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

2002-05-02 Thread Dan Hardiker

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