Currently I have about 5 servers, one I would like to use as a SVN server for development reasons, but I want it to be able to update the external server such as copying committed files to the external server via FTP (or any securer transfer).
Basically when I make a commit to my SVN server with the files that are needed changing it should copy those files from the SVN server to my main site. Is there any method I can do this?
I'm running nginx and Ubuntu 11.04.
It sounds like what you are looking for would be best handled by an SVN hook script. Hook scripts basically exist on the SVN server, and can be used to automatically perform actions, like doing an and updating files.
Though your question mentions FTP I strongly suggest you consider using ssh/scp/rsync instead. You could possibly just have your hook script use SSH and run an svn export/checkout on the other system.
Use build tool (Ant, Maven, whatever) and continuous integration tool (CruiseControl, CruiseControl.rb, Hudson, etc).
Do not use hooks for deployment purposes if somebody will recommend it. Specifically in this case hooks approach is wrong because of the several reasons:
All you need to is to:
Personally I use Ant and CruiseControl.rb for the purpose you've described. Here is the example of build script to deploy my changes over ftp protocol:
build.properties
file has following content:I would recommend spending some time to learn basics of build management (Ant) and continuous integration (CruiseControl) to perform deployment in a most appropriate fashion. Even though it might seem little bit more complex, it is a right thing to do.