We're running VisualSVN server on windows.
In short, what techniques are there to automatic deploy changed files to a staging server after committing?
I know there's something like SVN hooks, and while there are lots of useful hook scripts or executables hooks out there, i have not found one able to copy the changed files after a commit to a certain directory.
So my question is: what strategies can i use to automatically deploy my repository to a staging server, this especially for big websites with thousands of files, so updating a repo on the or multiple staging server(s) is rather slow.
Thanks!
Have you checked out CruiseControl.NET?
This can do what you're asking, and much more besides...
You should be able to use a post-commit hook to run an svn export from the repository out to whatever location you want. It might require the hook to do the export, then do the FTP, or have the export land in a folder watched by some other process that will push changes out.
I'm starting to build this on our new VisualSVN server, but haven't gotten a solution put together yet. Once I have the pieces figured out I'll update you.
Coming from a developers perspective, and this may be stack/platform dependent, but there is usually an intermediate step between the source repository and deployment of code that is handled by a build server, unless you are talking about purely script or static files.
A common scenario is that a build server would be notified of the code/file changes and would kick off a build. The build would handle things like compilation, running unit tests and configuration for various environments and from there you can tie your build revisions to subversion revisions and even kick off a deployment from there.
Have you looked at jenkins? :)