I have somewhat interesting development situation. The client and deployment server are inside a firewall without access to the Subversion server. But the developers are outside the firewall and are able to use the Subversion server. Right now the solution I have worked out is to update my local copy of the code and then pull out the most recently updated files using UnleashIT.
The question is how to get just the updated files out of Subversion so that they can be physically transported through the firewall and put on the deployment server.
I'm not worried about trying to change the firewall setup or trying to figure out an easier way to get to the Subversion server from inside the firewall. I'm just interested in a way to get a partial export from the repository of the most recently changed files.
Are there any other suggestions?
Answer found: In addition to the answer I marked as Answer, I've also found the following here to be able to do this from TortoiseSVN:
from http://svn.haxx.se/tsvn/archive-2006-08/0051.shtml
* select the two revisions
* right-click, "compare revisions"
* select all files in the list
* right-click, choose "export to..."
I've found rsync extremely useful for synchronizing directory trees across multiple systems. If you have shell access to your server from a development workstation, you can regularly check out code locally and run rsync, which will transfer only the files that have changed to the server.
(This assumes a Unix-like environment on your development workstations. Cygwin will work fine.)
Your question sounds like you don't actually have any direct network access from your development workstations to your server, and what you're really looking for is a way to get Subversion to tell you which files have changed. svn export supports an argument to let you check out only the files that changed between particular revisions. From the svn help:
You'll need to keep track of what the latest revision you copied to the server. Assuming it's SVN revision xxxx:
Then simply copy the contents of the deploy directory to your server on top of the existing files.
This won't handle deleted files, which may prove problematic in some environments.
You don't provide information on what is allowed through the firewall. I'm not familiar with UnleashIT.
I guess you could have a script that exports from SVN to a folder on the SVN server. The script then zips the exported files. You can then transport the ZIP file however you want and extract to the deployment server.
TortoiseSVN supports proxy servers so you could use one of those from the client's side?