What's the best way to manage assembly storage in source control?
I am using Perforce, if that changes the response setup at all.
I would like to implement a build process that, when a solution is built in "release" mode, tags the entire source tree with a tag and pushes the build output (DLL, web page) to / build / release in the control source. This directory should always contain the latest full build, nothing less and nothing more, so I can fully upload this directory to production servers and it's ready to go.
Now let's say that I had a DLL in a previous release that the new assembly shouldn't include. Does this mean that your best bet is to update that / build / release folder to check the whole thing, delete everything in it, add new build files and sync it up? Seems like an obvious answer, but I want to make sure I don't miss out on another voodoo that might be the best way to do it.
a source to share
I think you are missing plain voodoo :) You should consider using plain old filesystem for your build failures. The source control is for change, versioning, and collaboration management, and there is no need for any of those related to assemblies. The whole point of the build system is to be able to reproduce the source and build the app at the moment of notification, so I would like to focus on doing this more than relying on persistent storage for the output files. Be sure to back up the dropdown folder structure in the same way as the original management database. Use a folder naming scheme that includes the assembly number in the file name. I would keep all assemblies (at least a few) because times,when QA wants to rebuild an old build for testing, to compare features, or to resurrect a bug. Using this system, every assembly gets a new folder, so you don't have to worry about deleting old files.
a source to share