Wednesday, July 23, 2014

Visual Source Safe migration to Team Foundation Server 2013

Below are some of the steps and the process behind migrating our ancient Visual Source Safe repository into TFS 2013.  Hopefully this will shed some light on things to think about before and during the conversion.

The first thing was to get my hands on the VSS Migration Wizard.  This was out on Microsoft's website. 
This tool recommends having it local to the server where the VSS repository is located.  What I decided to do is spin up a virtual machine with SQL for this migration task.  Note that for large VSS repositories you may need SQL Standard or higher and not SQL Express.

Our VSS database was on a network file share.  This is the typically setup for VSS.  To get it to migrate quickly I used Robocopy to copy the whole structure to the VM where the migration tool was installed.  This not only gets it local (like the wizard wants it) but it also preserves the original VSS repo.  The only thing I changed in the SourceSafe config file was the location of the log file.  The log variable was still pointing to the network share.  After that I was able to log in with no issues.

The preservation was needed because A) it hasn't had analyze run on it in years and B)it was on a version of VSS not supported by the wizard.  I figured out the second part by running the wizard and having it verify things for me.   We were on 6.0 but I think it needs to be 6.0 c or d or higher for it to work.

The next step was getting past the verification.  Luckily someone had placed the Visual SourceSafe 2005 ISO out on our network.  That was a life saver as it is very hard to find old Microsoft releases.  This I installed on the migration VM where the copy of VSS repository lived.  I followed the VSS 2005 upgrade instructions included with the media to get the copied repository upgraded.

With the upgrade done the wizard worked like a charm.  I did setup a new TFS team project just for this repo.  The wizard took about 7 hours for our 2 GB VSS repository.  There were 73 file conversion errors.  They were all listed in the log.  Upon looking at one of the files that erred in TFS it was just a 0 byte file but it did exist.  The VSS file I was able to get with no issues and placed it on the tip in TFS.  That will have to work as I can get through these files quicker than trying to figure out the issue and resolving it.

Some of the other issues it ran into was files that were checked in with the 8.3 DOS file format/length restriction.  There is a Microsoft documented workaround the migration log points you at to resolve this.  For me it was files that were accidentally checked in (like log files) that were not needed.

This conversion was just to preserve it for historical purposes.  I am not actually building anything from it so having a few errors is OK.  I have all of the valid files in SVN right now which I will be converting to TFS soon.


If you have any VSS to TFS stories to share let me know.  I am always curious as to what others have done.

No comments:

Post a Comment