Last week, at the BUILD conference, Microsoft announced the general availability (GA) of Visual Studio Online. That’s great news, but this however impacts your current account and team projects living on the service. The first important thing to note is that the “early adopter” period of Visual Studio Online is nearing its end. On May 7 th, 2014, the early adopter period will stop.
Many of the users started out with VS Online before there was a clear view of how the future of TFservice (as it was called previously) would like like. Because of that, some people may want to take this transition to GA as an opportunity to reconsider their ALM configuration and move to an on-premises TFS server. Therefore, Microsoft enabled a data export window for any customer that has been on the service and wants to “opt out”. You now have the option to export your data from Visual Studio Online in a format that can be imported to Team Foundation Server 2013 Update 2. The data export process is a transfer of a faithful reproduction of your Visual Studio Online data.
You have overview of all the steps that you need to follow at the MSDN page, but in this post , I want to give you some information about an actual “real-life” VS Online tot TFS on-prem migration. The first thing you have to do is sending an email to VSOExportSupport@Microsoft.com with the question to activate the Data Export feature on your Visual Studio Online subscription. They will give you an answer within 24 hours. Once the option is activated, you will see an “export” tab in the admin section of your tenant. (note: be sure that you are the account owner!)
Next step, click on start, and you will get a “warning”, stating that VSO get more frequent updates than a TFS on-prem installation.
Click “continue“. Your export will be queued and after a minute or 10, you’ll get the option to download the export.
As you can see, the .zip file only contains 3 files. A readme file, a settings.ini file and user mapping CSV. The .zip file does not actually contain the data from your online project, but does contain the information used to download the data during the import process.
You need to have a TFS 2013 update 2 installation if you want to migrate from VSO to on-prem. (Note that TFS 2013.2 now has support for SQL Server 2014). On the TFS 2013.2 machine, open a CMD window (run as administrator) and browse to the path: “Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools“. Execute the following command (do not forget to change the SQL instance and the path to the INI file)
TFSConfig CloudImport /SQLInstance:SQLServerInstanceName /SettingsFile:SettingsFileName.ini
This will download your VSO database (which is actually stored on an Azure Blob storage) and restore it to your SQL instance. The default name of this new database will be “TFS_vsoaccountname“. In my case: “TFS_Vanwynsberghea”. If you want to change this behavior, just edit the settings.ini file. (oh, and do not share that file, as it contains a Shared Access Signature Token used to give read access to your data’s storage container on Azure).
Next step is to change the User Mapping file. Edit the CSV, and change it so that every VSO user reflects a domain user on your on-prem installation. (note that if you want to exclude a user, you can simple give “[NOMAPPING]” as LocalIdentity. For example:
You’re almost there. You now need to attach the new collection database to your TFS instance. Open the TFS Administration console, and select “Attach Collection“. Click on “List Available Databases” and select your VSO database
On the Identity Mapping page, browse to the .csv file you modified with the user association information and open it. Your users should appear in the list, including the association information. Review it to make sure that the details are correct and complete the wizard.
That’s it, you now have your VSO data on your on-prem TFS instance. That was a smooth process! Kudos to the Visual Studio Team!