I'm in the middle of rebuilding the architecture used for my build processes, and I'm defining separate configuration files for each environment: Local (developers box), Dev (development server), Test, UAT, Production. These config files are all stored in the Trunk\Deploy\Configuration folder in my subversion repository.
One of the issues that we've seen in our projects, is that a developer is having to check out the entire Trunk of the repository so they can build - because certain files, like the config files, are stored in folders outside of Trunk\Code\.
Low-and-behold; Subversion Externals. :)
I go into my Trunk\Code\Project folder, right click add a subversion property named "svn:externals" with a value of "Configuration ../../Deploy/Configuration". I update my local copy of the Trunk\Code folder and magically, a Configuration folder appears with all of the correct config files for the correct environment. When I go to the Windows properties of this folder and look at the Tortoise tab, this folder is pointing back to the correct Trunk\Deploy\Configuration folder!
My developers will no longer be required to check out anything but the code folder, to their local box; and they will be able to maintain and modify any of the config files that they need to work with.
sweet.