SVN 到带有提交历史的 GIT 迁移(使用 git svn)

Posted

技术标签:

【中文标题】SVN 到带有提交历史的 GIT 迁移(使用 git svn)【英文标题】:SVN to GIT Migration with commit history (Using git svn) 【发布时间】:2021-09-30 00:35:07 【问题描述】:

我需要将存储库从 SVN 迁移到 GIT(Bitbiucket) 以及提交历史记录和分支。阅读并探索了几篇文章,但在尝试来自以下 url 的以下命令时卡住了: https://davidzych.com/migrating-from-svn-to-git/

Step 1) git svn init http://url.to.svn/ --prefix svn
Step 2) git svn init http://url.to.svn/ -T Trunk -B Branches -t Tags
Step 3) git config svn.authorsfile ../authors.txt
Step 4) git svn fetch [Get stuck at this step and it doesn't move forward after a specific revision]
Step 5) git branch -a
Step 6) git tag -a -m "Migrating SVN tag" tag-name refs/tags/tag-name
Step 7) git remote add newrepo https://url.to.git/repo.git
Step 8) git push --all newrepo and git push --tags newrepo

我也尝试了以下网址中的步骤。 https://docs.microsoft.com/en-us/azure/devops/repos/git/create-new-repo?view=azure-devops

如果有其他更好的方法/步骤来进行此迁移,请提出建议。

【问题讨论】:

【参考方案1】:

Bitbucket 有一个特殊的插件,称为 SVN Mirror。

【讨论】:

是否有任何手动步骤可以用于相同目的。我有一个使用 SVN 镜像插件作为最后一个选项的计划(因为它不是免费的)。 据我所知,它有 30 天的试用期。如果你不需要长时间保持 SVN 和 Git 同步,只需要迁移一次,那么试用时间对你来说应该足够了。

以上是关于SVN 到带有提交历史的 GIT 迁移(使用 git svn)的主要内容,如果未能解决你的问题,请参考以下文章

SVN项目迁移到Git上(并带有完整的提交记录)

svn迁移至git指南

从 svn 迁移到 github 企业而不丢失提交历史

SVN到Git的一键迁移脚本(保留所有分支、Tag及提交记录)

如何同步迁移之后继续在SVN提交的代码到Git

使用没有主干标签和分支的 SVN 存储库从 SVN 迁移到 Git