We made a big investment in VSSConverter SP1. The most important change was to create a unique ID for each item in VSS.  Without this it is impossible to track the history of a file or folder across renames and moves.  Previous versions of VSSConverter would frequently lose track of files that had been renamed, making it impossible to migrate the rest of the history. 

Related to this are the improvements made to client timestamp issues.  The timestamp of all actions committed to VSS are recorded from the client, rather than the "server".  If two clients are in different time zones (or one just has the clock set wrong) it is possible to create a sequence of actions that doesn't make sense, such as editing a file before it is added or after deleting it.  Now that we can associate the entire history of the file to its parent we can override the VSS timestamp and put it into a logical order. By logical order I mean that the file (and its parent folder) exists and is not deleted before trying to commit a checkin. 

SP1 VSSConverter is smarter about the way multiple VSS actions are batched into a single TFS changeset.  On top of making sure there are no conflicts and keeping track of the checkin comments and owners, it will now limit the time span of the changeset to 10 minutes.  The TFS checkin comment will also now reflect the time span over which the actions originally happened, instead of just the timestamp of the last action. 

The "analyze" option catches many more potential problems then earlier versions.  Previously it was doing a simple scan that could not detect issues within the history of a VSS item.  Now, the analyze option is running the same algorithm that it does before migration. This does take longer, but it is the only way to report problems (like client timestamp issues) that could previously only be detected at migration time.  In the long run I think this will save time.

By using the Team Foundation Client object model instead of making direct calls to the web services, Sp1 VSSConverter was able to cut the number of workspaces down from ten to one.  This allowed us to get rid of the threading, which means  improved performance and no more deadlocks.  VSSConverter can do the harder history analysis (resulting in more migrate-able actions) on the same database in roughly the same amount of time. 

VSSConverter will now attempt to remove old VSS source control bindings from the solution so that Team Explorer will immediately recognize that it needs to bind the solution.

These are just some of the highlights; there are too many bug fixes and other improvements to list them all here. Suffice to say, I strongly recommend that anyone who wants to move from SourceSafe to Team Foundation use the 2008 Sp1 or later. You can find it here