Clean copy not quite so clean

Due to forces out of my control I have unfortunately become “build guy” once more at my current job.  The current technology stack includes Visual Source Safe as the source control system, Cruise Control as the continuous integration management system, and MSBuild as the build execution engine.  Due to time constraints with our current release we are unable to replace any of these technologies and have limited time to even visit and upgrade them.  This has led to quite an amount of contention in the team as failures in the build process are a particularly distasteful source of wasted time on any team.  One such incident occured a couple of days ago when we found files that had been removed from the project were actually being deployed out to our dev and qa servers as part of our build.  We verified that the files had been removed both from the solution and from source control.  However, upon further researching the issue I discovered this little gem of knowledge: When using Visual Source Safe as your source control system, the source control task in Cruise Control does not have a mechanism to clean out the working directory upon checkout.  *Sigh*  In looking through the other source control systems that are supported by Cruise Control it seems that VSS is one of the few that is crappy enough to not support this rather basic feature.  I added the note to my ammunition pile of why we need to move to SubVersion and then added a task in our build file to delete the contents of the working directory when a build completes.  The link below contains the documentation that is useful when setting up Cruise Control to work with Visual Source Safe.  If you’re using the same technology stack then you have my sympathies, but hopefully this will help save you a little time:
http://confluence.public.thoughtworks.org/display/CCNET/Visual+Source+Safe+Source+Control+Block.

This entry was posted in Technology, Uncategorized and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *