I’m posting this as i’m looking for some ‘real life’ advice. I’ve read the subversion ‘book’ and am still left wondering exactly how to use subversion in my scenario.
I work for an Advertising Agency. We have a development team of 4 PHP Developers. We have a very large client and at present, the site is under subversion control.
What I’d like to do is setup an internal development process whereby a request comes in from our client, we complete the necessary work, then place on a staging server for approval by the client before publishing LIVE.
We’ve recently invested in a dedicated Windows Development Server (we have clients using both ASP and PHP, MSSQL and MySQL).
I was thinking of creating two internal sites. http://development.clientA.local and http://staging.clientA.local. I was going to setup a post-commit hook so that the http://development.clientA.local site was always updated whenever a change was made. This would be the site we would access as we develop to make sure our code works.
When a piece of work was complete, I was going to use the http://staging.clientA.local to take a copy of the ‘trunk’ to show to the client for sign off.
Can you see what i’m trying to achieve with this setup?
The questions I still have for example are:
- Say a developer is working on the trunk, completing a request for the client, but someone else is working on a different part? When http://staging.clientA.local is updated, it might contain broken areas of the site aswell as what the client has asked for?
- Following on from the above, what if the client views http://staging.clientA.local but wants minor tweaks?
- Should be keep the main line of development as the trunk, and create a branch for every change the client requests?
I understand what a Branch and a Tag are but am not sure how, and more importantly when, they should be used in my example?
Any help or advice you guys can provide would be fantastic.