Microsoft Certified: DevOps Engineer ExpertDesign and implement source controlHard
A company is migrating its existing on-premises Subversion (SVN) repository to Git in Azure DevOps. The SVN repository has a long and complex history, including multiple branches and tags. The company requires a full-fidelity migration, preserving all commit history, author information, branch structures, and tag references. Which utility is best suited for this task?
- AGit-TFS utility
- Bgit-svn utility
- CManual `git init` and `git remote add`
- DAzure DevOps Import Repository feature
Show answer & explanationAnswer & explanation
Correct answer: B. git-svn utility
The `git-svn` utility is a bidirectional bridge between a Subversion repository and Git. It is specifically designed to perform full-fidelity migrations from SVN to Git, preserving commit history, author information, branches, and tags, which aligns perfectly with the company's requirements.
Why the other options are wrong
- A. Git-TFS is used for migrating Team Foundation Version Control (TFVC) repositories to Git, not Subversion.
- C. Manual `git init` and `git remote add` would only import the latest state of the code, completely losing all historical commit information, branches, and tags.
- D. The Azure DevOps Import Repository feature can import Git repositories or a basic SVN codebase, but it typically does not preserve the full fidelity of SVN history, branches, and tags as comprehensively as `git-svn`.
git-svn Utility
A Git command-line utility that provides a bidirectional gateway between a local Git repository and a remote Subversion repository, primarily used for migrating SVN history to Git.
- Performs full-fidelity migration from SVN to Git.
- Preserves commit history, author information, branches, and tags.
- Can be used for incremental synchronization.
- Requires knowledge of SVN repository structure (trunk, branches, tags).
Memory trick: git-svn converts ancient scrolls to modern trees.