Migrating from VSS to Azure DevOps

Microsoft Visual SourceSafe (VSS) has been around since 1994 and was a widely used source control system before the Git based system came around in 2005. Microsoft discontinued updates to the product, however there are still many development teams and organisations out there still using this legacy Software.

Microsoft’s latest incarnation of a source control system is Azure DevOps. A fully featured product available in both on-prem and cloud based versions. If you are an organisation using VSS then it is highly recommended for you to move to Azure DevOps to enjoy the benefits of a modern source control system which also includes all features used throughout the development life cycle.

Migrating from VSS to Azure DevOps

Before migration can take place it’s important to prepare the VSS database ready for this migration. There are several steps which need to be taken to do this and they are summarised below:

  • Upgrade VSS to the latest version
  • Verify VSS data for migration
  • Perform a test migration
  • Perform final migration of data to live Azure DevOps

Preparing Visual SourceSafe for migration

Steps:

  • Check in all files
  • Copy the entire VSS directory to an “upgrade machine” which we can use to perform all the VSS preparation, upgrade the database and perform the migration
  • Upgrade VSS to VSS 2005 if required
  • Backup the VSS database
  • Scan and fix data integrity issues by running the analyse command. You can see what all the command line arguments do by using the /? switch. This process will take around 1 hour per gigabyte of data in your database.

Analyze.exe -F -V3 -D “c:\vssdb\data”

  • Check the report that’s produced for errors or any issues and resolve them as needed
  • Find the auto created usermap.xml file for VSS users to AAD users and update the AAD information
<?xml version="1.0" encoding="utf-8"?>
<UserMappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <UserMap From="Fred" To="DOMAIN\fred"/>
  <UserMap From="Barney" To="DOMAIN\barney"/>
  <UserMap From="ADMIN" To="DOMAIN\bob"/>
</UserMappings>
  • Install the VSS mirgation tool from https://marketplace.visualstudio.com/items?itemName=EdH-MSFT.VisualSourceSafeUpgradeToolforTeamFoundationServer

Prepare Azure DevOps instance for migration

Steps:

  • Create a new Azure DevOps Organisation by going to: https://app.vsaex.visualstudio.com/me?mkt=en-us&workflowID=devprogram
  • Log into the Azure DevOps instance
  • Check in the settings that this instance is backed by your AAD
  • Create a new project within that organisation

Perform VSS to Azure DevOps Migration

  • Start the migration using the VSS Upgrade Wizard
  • Select the SQL database where the database will be migrated to first before being migrated to Azure DevOps. This will take 2x the space of your current VSS database
  • Choose your organisation and project to migrate to (a test project the first time and the final project the second time)
  • Perform the migration

Final Checks

  • Log into the Azure DevOps instance and check that all repository files are there
  • Note: As this is a VSS migration, nothing apart from the repo will have data once the migration completes

Common Questions

  • Can I migrate into a Git repo in Azure DevOps?
    • No, it has to be into a TFVC (Team Foundation Version Control) repo
  • Do I really have to run the verify command on VSS
    • It is highly recommended that you run it, it will fix any issues around your database before the migration

If you would like further information on VSS to Azure DevOps migrations and would like to engage risual to help you further with this process please Contact Us.

About the author