VSTS Sync Migration Tools

I have been working with a number of customers in the last year that want to move to VSTS. While many of them want to do the full Collection import, many do not.


Maybe they have too many Team Projects and they want to consolidate, maybe they just have too much baggage. Whatever the reason I needed to be able to push data around between TFS and VSTS… or even TFS to TFS. That is when the VSTS Sync Migration tools were born.

I initially had but a single goal of migrating work items, but since then it has broadened out to include many different types of data:

  • Work Items – I only ever worry about the Tip of Work Item tracking. Apart from the History (comments) field which I do migrate there is really no long term value in it aside from reporting. Since most migration tool mess up the dates the reporting value disappears as does the value in the history.

    Note: I do have some ideas around this and the new API capabilities since TFS 2012 should allow a higher fidelity of data migration, however I have not yet been unable to talk a customer out of History, and thus I have not had the need to build. So if you want to migrate with history and have the budget…

  • Test Plans & Suits – The Test data is a lot trickier, but I managed to get Configurations, Variables, as well as Plans and Suits migrated. There are still some bugs but its way better than having to go make everything from scratch.

    Note: Test Runs are not currently migrated but I have been noodling on that problem. Again, once someone is desperate enough to give me a reason to go dive in…

  • Teams – Really simple, just the team names, but there is scope for a lot more.

  • Area & Iteration Paths – Simply replicated the existing layout. I would love to have all of the Team Meta data but again, time…

Since most teams migrate from TFVC to Git in TFS I was not interested in migrating code. There are some really good solutions for that already with Git-TF and Git-TFS being the best. I wanted the tools to be free as well, so while I always work in VSTS I publish the code and releases out to GitHub so others can participate.

You are welcome to Fork the repository on GitHub and I will happily accept pull requests, but know that my MASTER is in VSTS and not GitHub along with the entire automated build and release system. I release to NuGet, Chocolatey, GitHub, and the VSTS Marketplace.

Let me know what you think of the tools…

  • Betty

    Have you talked to MS / Brian Harry about their high fidelity import tool? apparently they’re trialing it (https://blogs.msdn.microsoft.com/bharry/2016/09/28/team-services-update-sept-28/#comment-223685)

    • Which is why I mentioned “While many of them want to do the full Collection import, many do not.” Many customers want to Merge/Split Team Projects, or just move one. Can’t do that with the high fidelity iImport. But yes, I go there first!

  • Pingback: Compelling Sunday – 15 Posts on Programming and QA()

  • David V. Corbin

    Great post. This is tooling that will be appropriate for many 🙂

    You state (with respect to WI history) “there is really no long term value in it”, which is likely true for the majority. But there are teams which do statistical analysis directly off the work item store (not warehouse/cube) for which this is a consideration.

    • Agreed, which is why I said “long term value”. Once you get 6 months of new history under your belt the older history is meaningless. For iterative teams that period is probably only 3 or so iterations of history…

      Is it worth spending the money it would take to do a full history migration for 6-9 weeks of value?

      • David V. Corbin

        I have one client who was an early adopter of TFS in 2005 or 06…. They are a manufacturing firm, and use the system for throughput tracking across the factory…Not just software…

        They do month over month, as well as quarter over quarter, year over years, along with 3 year and 5 years trends.

        As a product makes it through the production line, the area path for that lot is changed, the period of time in each area is what they need to analyze…

        This is why (though I agree with you in the general case), using absolute statement is almost always going to miss real world situations and use-cases.

  • thcase

    Martin – Thank you for the tool. I am getting issues when trying to run with not able to update Created Date. Is this something I should submit as issue or is this a documentation issue with permissions required. I was trying first to copy from on TFS Project Collection to a new one to do some clean up first. I also ran into an issue when directly trying to upload to VSTS due to throttle limits. I have about 1500 work items to migrate. Customer wants historical data migrated and it includes work item links and some include attachments. I am willing to submit issue on GitHub if that is what is appropriate. Again thanks.