Microsoft Certified: DevOps Engineer ExpertDesign and implement source controlMedium

A company is migrating its existing on-premises Team Foundation Version Control (TFVC) repository to Git in Azure DevOps. The TFVC repository has a complex structure with multiple branches and merge history that needs to be preserved. The company requires a full-fidelity migration, including all changesets, branches, and merge relationships. Which tool should the company use for this migration?

  1. Agit-svn utility
  2. BManual `git add` and `git commit` after cloning TFVC
  3. CAzure DevOps Import Repository feature
  4. DGit-TFS utility
Show answer & explanation

Correct answer: D. Git-TFS utility

The Git-TFS utility is specifically designed for migrating TFVC repositories to Git while preserving history, branches, and merge relationships, which is a full-fidelity migration. The other options do not offer the same level of fidelity for TFVC-to-Git migrations.

Why the other options are wrong

  • A. git-svn is used for migrating Subversion (SVN) repositories to Git, not TFVC.
  • B. Manual migration would lose all history and merge information, which is not a full-fidelity solution.
  • C. The Azure DevOps Import Repository feature is suitable for importing Git repositories or basic TFVC codebases without complex history preservation.

Git-TFS Utility

A two-way bridge between Team Foundation Version Control (TFVC) and Git, primarily used for migrating TFVC repositories to Git with full history preservation.

  • Preserves changesets, branches, and merge relationships.
  • Allows for incremental migrations.
  • Runs as a command-line tool.
  • Requires .NET Framework.

Memory trick: To bridge TFVC to Git, use the dedicated tool.

More Design and implement source control questions