The process of migration of source code to Team Foundation Server from Visual Source Safe databases is described in details here.

However, this Manual contains some discrepancies and I would like to mention here some of them and also to give some recommendations.

First of all, I was able to migrate successfully one of the project from the development VSS to the new Team Foundation Server using the VSSConverter tool. The VSSConverter will migrate the source code with all history. There are some limitations of the migration process like inability to migrate shared and pinned projects, but they are caused by absense of such features in the Team Foundation Server.

Notes

1. The migration should be performed on the machine where the Team Foundation Server is installed. And you must be logged as a user from the TFS Administrative group. The TFS machine must not be in the corporate domain. You just need to be able to access the source VSS from the TFS machine. You also need to install Visual Source Safe 2005 Client before the migration.

2. The original Manual instructs to modify just one configuration file. I recommend to use two separate configuration files for analysis and migration of the source code. It’s easier to maintain them for other projects.

3. Samples of the configuration file given in the Manual are not valid! You will not be able to use them without correction. For instance, the following element will produce an error message like “An element cannot contain white space”.



The correct element looks as follows:


There are some other elements, which need to be replaced.

4. Before you migrate the source code the Team Foundation Server, you must create a project in the TFS. Otherwise, the migration process will fail. During creation of the TFS project, you can select an option to create an empty Source Control project.

5. You don’t necessarily need SQL Server Express in order to migrate the source code. It is not mentioned in the Manual, but you can also use SQL Server. You need to modify the configuration file by adding a as a child of the element as follows: