tags:

views:

102

answers:

2

Hi guys, I'm working on a simple social networking application and would be ready to launch it in soon. However I would like a way to properly maintain it as such that we would be making updates and adding new features to the application from time to time. I need some pointers on how to do it right as right now I have my application subversions using tortoise svn on a local server and every time I wish to upload it I do an export and upload the exported files to our remote server using a simple ftp.

Is there a better way to do this - I mean I don't want to make an upload and end up finding out that I accidentally overwrote a critical file that wasnt meant to be overwritten or so - I mean whats the proper way to do this.

+1  A: 

You should create a pre-production mirror of your live system and deploy to that with a script. You can then check in that environment your changes haven't broken any functionality before deploying the code from pre-production to the actual production environment with another script.

Using source control to manage you development, pre-production and production environments is essential. SubVersion is a good choice and if you don't fancy the command line use TortoiseSVN.

Dave Anderson
+1  A: 

I am used to having an ordinary working copy checked out on the web server. If a file does not exist in the repository, it should not be on the web. This way you can easily move the entire web around and create additional versions (like beta version on a different domain) without worrying about copying all the necessary files. And you can easily add new features without breaking the release version – simply work on the features in a separate branch, test the branch on a different URL and when you are ready, merge the branch back to trunk and update the trunk copy.

Of course there are some drawbacks to having the ordinary working copy checked out on the server, for example there are probably some files you do not want to be served over the web. This might and might not be an issue – I am working with Catalyst, so this does not bother me, as each request goes through the controller stack anyway.

zoul