Azure DevOps Migration Tools Chocolatey GitHub release Build on VSTS

The Azure DevOps Migration Tools allow you to bulk edit and migrate data between Team Projects on both Microsoft Team Foundation Server (TFS) and Azure DevOps Services. Take a look at the documentation to find out how. This project is published as code on GitHub as well as a Azure DevOps Migration Tools on Chocolatey.

WARNING: This tool is not designed for a novice. This tool was developed to support the senarios below, and the edge cases that have been encountered by the 30+ contributers from around the Azure DevOps community. You should be comfortable with the TFS/Azure DevOps object model, as well as debugging code in Visual Studio.

NOTICE: Both paied and community support is avilable through our recommneded consultants as well as our contributors and many DevOps consultants around the world.

What can you do with this tool?

Change Log

What versions of Azure DevOps & TFS do you support?

NOTE: If you are able to migrate your entire Collection to Azure DevOps Services you should use Azure DevOps Migration Service from Microsoft. If you have a requirement to change Process Template then you will need to do that before you move to Azure DevOps Services.

External Walkthroughs and Reviews

Getting the Tools

There are two ways to get these tools:

Overview

These tools are build by naked Agility Limited’s DevOps & Agility consultants to do real world migrations on a daily basis. We always work in Azure Devops Services on https://dev.azure.com/nkdagility/migration-tools/ with code in GitHub and publish as a chocolatey package that pulls from GitGub Releases.

Team Work Items Azure Boards
Public Issues GitHub Issues
Builds & Releases Azure Pipelines
Releases Output Github Releases
Documentation Github Pages

Watch the Video Overview to get you started in 30 minutes. This tool is complicated and its not always easy to discover what you need to do.

Processors

There are other processors that can be used to migrate, or process, different sorts of data in different ways. Which one is right for you depends on the situation at hand.

Most of these processors need to be run in order. If you try to migrate work items before you have migrated Area and Iterations then bang you need to go back.

Processor Staus Target Usage
NodeStructuresMigration ready Area & Iteration Migrates Area and Iteration Paths
WorkItemMigration ready Work Items Migrates either tip or history of work items with Links & Attachments based on a query with field mappings
TeamMigration beta Teams Migrates Teams and Team Settings
WorkItemRevisionReplayMigration merged Work Items obsolite - merged into WorkItemMigration
LinkMigration merged Work Items obsolite - merged into WorkItemMigration
AttachementExportMigration merged Work Items obsolite - merged into WorkItemMigration
AttachementImportMigration merged Work Items obsolite - merged into WorkItemMigration
HtmlFieldEmbeddedImageMigration merged HTML Fields obsolite - merged into WorkItemMigration
GitCommitFix merged Git links obsolite - merged into WorkItemMigration
WorkItemDelete ready Work Items Bulk delete of work items WARNING DANGERIOUS
WorkItemUpdate ready Work Items Bulk update of Work Items based on a query and field mappings
WorkItemQueryMigration ready Queries Migrates shared queries
TestVeriablesMigration Beta Suits & Plans Migrates Test Variables
TestConfigurationsMigration Beta Suits & Plans Migrates Test configurations
TestPlansAndSuitesMigration Beta Suits & Plans Rebuilds Suits and plans for Test Cases migrated using the WorkItemMigration
TestRunsMigration Alfa Suits & Plans Migrates the history of Test Runs
ImportProfilePicture & ExportProfilePictureFromAD Beta Profiles Downloads corporate images and updates TFS/Azure DevOps profiles
CreateTeamFolders ? ? ?
ExportTeamList ? ? ?

Field Maps

By default, when you are moving from source to target the system will map all of the fields that exist in source to the same field in the target. This is the behaviour if the FieldMaps section is not present in the configuration file.

However sometimes you want to move data to another field, or use a regex to parse out just the bits that you want. To help we have built a number of mapping tools that should give you the versatility you need.

Code (TFVC)

There are no good tools for migrating TFVC code. All of them suffer from “time-dilation” as one can’t control the dates of the Check-ins. While you can use tools like TaskTop, TFS Integration Tools, or others there is no support. We prefer to recommned that you use Git-TFS and migrate from TFVC to Git with full history and branches. If your resulting repository is too large we recommend creating a full clone of TFVC for posterity, and then create a limited branch clone with limited history for work.

Code (Git)

When moving Git repos between Projects and Accounts you are able to maintain full history. However you will need to have all of the links to

Build & Releases

When you import a build or release defenition into VSTS you need to fill out some of the data to allow that new definition to be saved. Things like connections and other require fields usually dont have matching GUIDS and need manual intervention. For builds & Releases we recommend that you use the built in Export/Import tools provided in the UI to move then to a new Team Project.

Why does this exist

The main migration tool for TFS has always been the TFS Integration Tools which is sadly no longer supported. Indeed it only loosely supported versions of TFS after 2010 and had a lot of bugs. It was very difficult to configure and run. This tool hopes to solve some of that by providing support for TFS 2015 and Visual Studio Team Services (VSTS).

It solves:

Contributing

If you wish to contribute then feel free to fork this repository and submit a pull request. If you would like to join the team please contact.

This project is primarily managed and maintained on Visual Studio Team Services and code checked into MASTER is automatically synched between VSTS and GitHub. There is no hidden published code, but not all branches are published.

If you want to sync your GitHub repository then check out Open-source with VSTS or TFS and Github for better DevOps .

Support

You can get free support from the community here and on social media on a best effort basis if folks are available. If you are looking for paid support there are a number of consultants that contribute to this project and that are experts in this type of work:

FAQ

Check out the FAQ pages

Terms

naked Agility Limited & our contibutors creates and maintains the “Azure DevOps Migration Tools” project under its terms of business and allows full access to the source code for customers and the general public.

The Technical Details

- Technical Overview
Azure Pipeline Build on VSTS
Coverage Coverage
Maintainability Maintainability Rating
Security Rating Security Rating
Vulnerabilities Vulnerabilities
Release GitHub release
Chocolatey Chocolatey