views:

295

answers:

6

I realize that this question has been asked 100times but none that I have found really answers my questions.

We have multiple developers in multiple locations working on the same project. Some use Windows, some use Mac, our server is Linux, and each developer uses a different development application (Dreamweaver, Eclipse, etc). Each developer is running some form of Apache/PHP/MYSQL on their own computer with versions identical to our live server.

On the server we have the live(bug free) site, and our testing site(Each has its own mysql database). Once everything works as it should on our testing site we copy the modified files to the live site.

What we are looking for is

  • some way to allow the developers to 'check out' the files from the testing site, and then 'check in' after they are done working with them.

  • We want to be able to log the date/time of the check out and check in.

  • We would also like to be able to copy selected folders/files to the live site after we have finished testing.

The developers have varying degrees of command line knowledge, from none at all to experts.

Is there possibly a GUI version of SVN?

I should also add that it doesn't have to be a free option, if these requirements come with a pay solution that would be fine as well.

Any information would be appreciated.

A: 

There are lots of GUIs for SVN, and yes it will allow you to solve many of the problems you listed.

Eclipse has plugins for SVN, there are Mac and PC clients that work nicely. I asked about a setup with graphic designers in mind a few months ago, and got some helpful answers.

acrosman
Will SVN track the check-in and check-out dates/times?
SVN will help you track who made what change when. Read up on version control in general, it's a tool any serious development team should use.
acrosman
Dreamweaver CS4 Also has SVN functionality built in :)
Shadi Almosri
A: 

You realize that this question has been asked a lot. Just try any of the major version control systems out there. Subversion, Git, Mercurial, TFS, anything. They'll all work for what you're trying to do.

You situation of the "central repository" being on the "testing server" won't necessarily hold, though; you'll just have it be another checkout from the central server, too.

Jim Puls
A: 

As acrosman pointed out there are a lot of (open source) GUI Tools (e.g. Tortoise, Subclipse (Eclipse), Subversive (Eclipse)). I think Subversion is never a bad choice and exporting the current Head revision to a development Server can be easily done with a Hook Script running after every commit. Logging works the same way as well. The most annoying part for me was to keep the Test databases and configuration files in the repository consistent.

Daff
Where can I find some information about this 'hook script' I have seen it mentioned a few times.
The Subversion book is very good and should contain all the information you need http://svnbook.red-bean.com/ or this short howto: http://articles.techrepublic.com.com/5100-10878_11-6137162.html
Daff
A: 

There are two easy tricks for deployment to your "live" site:

1) Use an SVN client on your "live" site to check out your software. When there are changes to deploy, run the SVN UPDATE command. (be sure to tell your webserver not to serve files in .svn folders!)

2) Have two root folders on your "live" site. When it's time to deploy, SVN EXPORT into the second folder. In your webserver config, change your document root to the second folder and restart your web server. If there's some unforeseen problem in the deployment, just switch back to the first folder.

Generally speaking, you'll want developers to do testing of their changes in their local environment only. When it's time to do testing of the full product, treat your "test" server exactly the same way as your "live" server, ideally using the same methods for deployment.

And find yourself a script junkie who can automate all the deployment for you, or use something like springloops.com. Eliminating manual deployment processes will probably make you happier in the long run (it's 3 AM, you think you've fixed that last deployment problem, so you go to bed. When you wake up at 12:30 PM and realize that your site has been down all morning ... it happens).

For GUIs, use scplugin for Mac OS X, TortoiseSVN for Windows. In Eclipse, use one of the eclipse svn plugins.

Seth
+1  A: 

Other SVN GUI options for the Mac include Versions or Cornerstone both of which work well. If anyone is using Coda for development it also has SVN support built in.

The other aspects of the question have already been answered.

Paulo
A: 

We have the following setup...

Multiple users in multiple offices, each running either Windows (With Tortoise SVN) and WAMP or OSX (with Syncro Subversion Client). There are other clients for both systems but we have chosen these.

Everyone has VPN access to our central development server.

As they work away on their local systems they regularly check in updates to the SVN (development) server and get updates. On the development server we have a script setup that runs every x minutes that does a checkout to the web root (only if there are new updates). That script also updates a single file with the current SVN revision number which we then show on the development site so everyone knows what's running and when it was most recently updated.

It's worked for several years for us and has proven to be most helpful.

Jason