Microsoft Certified: DevOps Engineer ExpertDesign and implement source controlMedium
A development team is migrating their existing on-premises Team Foundation Version Control (TFVC) repository to Azure DevOps Git. They have a large history with many branches and merges. The team wants to preserve all historical data, including branches, merges, and changesets, while ensuring a smooth transition with minimal disruption. Which migration strategy should they use?
- AManually re-create all branches and commit history in a new Git repository.
- BExport the TFVC history to a flat Git repository without merge information.
- CUse the 'git-tfs' command-line tool to perform a full fidelity migration.
- DUtilize Azure DevOps' built-in 'Import repository' feature for TFVC without any pre-processing.
Show answer & explanationAnswer & explanation
Correct answer: C. Use the 'git-tfs' command-line tool to perform a full fidelity migration.
The 'git-tfs' tool is specifically designed for migrating TFVC repositories to Git while preserving full history, including branches, merges, and changesets, making it the most suitable option for a full fidelity migration.
Why the other options are wrong
- A. Manually re-creating history is time-consuming, error-prone, and unlikely to preserve all nuances of the original TFVC history.
- B. Exporting to a flat Git repository would lose crucial merge information and branch history, which is contrary to the requirement.
- D. Azure DevOps' built-in 'Import repository' feature is primarily for importing existing Git repositories or basic TFVC codebases, and may not preserve full history/merges as comprehensively as 'git-tfs' for complex TFVC repositories.
TFVC to Git Migration (Full Fidelity)
The process of moving a Team Foundation Version Control (TFVC) repository to a Git repository while retaining all historical data, including branches, merges, and changesets.
- Preserves complete history for auditing and context.
- Often requires specialized tools like 'git-tfs'.
- More complex than basic code migration but offers significant benefits.
Memory trick: Think of 'git-tfs' as a time machine, preserving every branch and merge from TFVC's past.