Microsoft Certified: DevOps Engineer ExpertDesign and implement source controlMedium

A company is migrating its existing source code from a legacy Subversion (SVN) repository to Azure Repos Git. The SVN repository has a long history with complex branching and merging patterns. The team wants to preserve as much of the commit history and branching structure as possible during the migration. Which migration strategy is most appropriate for this scenario?

  1. AManually copying files and creating an initial commit in Git.
  2. BImporting SVN repository as a TFVC repository first, then migrating to Git.
  3. CUsing a tool like 'git-svn' to perform a full fidelity migration.
  4. DMirroring the latest SVN commit to a new Git repository.
Show answer & explanation

Correct answer: C. Using a tool like 'git-svn' to perform a full fidelity migration.

For preserving the complete commit history, including branches and tags, from SVN to Git, a full fidelity migration using tools like 'git-svn' is the most appropriate strategy. This tool re-creates the SVN history in a Git-compatible format.

Why the other options are wrong

  • A. Manually copying files results in a single initial commit, losing all prior history.
  • B. Migrating to TFVC first is an unnecessary intermediate step and doesn't directly address preserving SVN history in Git.
  • D. Mirroring only copies the latest state, losing all history.

SVN to Git Full Fidelity Migration

The process of migrating an SVN repository to Git while preserving the complete commit history, including branches, tags, and commit metadata.

  • Tools like 'git-svn' are commonly used.
  • Crucial for maintaining historical context and audit trails.
  • Can be complex for very large or intricate SVN repositories.

Memory trick: To keep the full story, you need the right translator.

More Design and implement source control questions