Currently there are some challenges with managing application versions and deployments at the shop I work in. Typically we just change the code(corresponding DLL's) that we need to support our changes and drop the code into production(cut and paste). The most pressing problem is that we need a way to know and to review the code that is currently in production. We have version control(Source Safe) however there is no clear build point or marker to indicate what version of the source was deployed on a given date. Also I want to propose implementing some detail and documentation strategy around our deployments that can be referenced. My question is: What approach(es) would be best to implement a strategy to address these issues?
I have blogged on this in a fair amount of detail. The first of a three part series is located here: http://www.mattwrock.com/post/2009/09/30/The-Perfect-Build-Part-1.aspx.
I was in a similar situation as you were a couple years ago. We would just push new DLLs as they changed but there was never a clear understanding of what was in production except in the heads of certain devs. That's all changed now. We migrated to SVN and overhauled our repository organization to support the ability to track all of this. You could prabably somehow do something similar with VSS but I strongly encourage you to migrate to svn, git tfs or almost anything else.
Good luck. It will take you some time to get your house in order but I found it was well worth it.
SourceSafe has some very rudimentary support for dealing with production versions using the labelling feature. Essentially, whenever you release a new version of your software, you label it with a version number.
To apply a label:
- Select the project you want to label
- Click on File->Label
- Enter some details about the version.
Later on, when you need to get a specific version, you can select the project and filter to a specific version by going to Tools->Show History and selecting a particular label by entering "L (label name)" in the From and To boxes.
As I mentioned, this is a very rudimentary system, and only supports the most basic of cases. For more advanced tasks, I'd strongly suggest moving off something like VSS in favour of a more robust version control system like Subversion.