tags:

views:

119

answers:

3

I'm working with a team that is developing a large CakePHP application. Here's how it works:

Our company creates HTML/CSS/JS page designs and commits them to our design server. The outsourcing company in India "downloads" those page designs and writes the PHP/AJAX code for them. Then they commit the completed code with the page designs to a test server they host.

We test the code, send approval, then India commits the completed code to our production SVN server, which automatically updates our production site through FTP.

If we need to made changes to the design or code, our company (or India) will test those changes locally, then commit to the production server.

Between our company and India, we have three FTP/SVN servers in addition to local working copies of each stored on team members' computers:

  • Design SVN/FTP Server
  • Testing SVN/FTP Server
  • Production SVN/FTP Server

It there anything we can do to improve workflow? It is a little hassle to sync different parts of each server/repository with each other.

+2  A: 

Why do you need three different SVN servers? Why not just use branches or tags on a single server? You can still have scripts that check for updates to a particular tag, and upload them to the web server.

JW
A: 

We test the code, send approval, then India commits the completed code to our production SVN server, which automatically updates our production site through FTP.

At the very least you should checkout the production code onto the server using SVN instead of using FTP, future changes to the production code are a simple as updating the working copy on the production server (svn up).

Tom
A: 

There should only be one repository, simple as that - that's the first step but its fairly key.

I think that you can then want to run multiple parallel branches with the aim that changes percolate toward the trunk - the trunk being the deployed (or at least deployable) production version.

But the first thing has to be that you only want one repository.

Murph
That sounds good. So, would these branches essentially have complete copies of each other (i.e. production and testing), rather than just the code differences? I'm still unsure of the best automated way to handle updates from the testing environment into production and vice versa for rapidly deploying time-sensitive bug fixes.
Josh
I keep re-reading the question - its a complex set of problems! I'd need to spend far more time on this to get my head around it!
Murph