SVN 到 Git 迁移 - 使用一个主干与多个项目

SVN to Git Migration - Using one trunk with multiple projects

我有一个具有以下结构的 SVN 存储库,我对 20 多个项目中的七个感兴趣。

我已尝试关注 the migration guide from Bitbucket 以及通过其他帖子找到的补充内容。无论我尝试以下哪个命令,我最终都会得到一个空的 .git 存储库。

我如何才能使用 git svn 将一个项目放入 git 存储库?

尝试过的命令

git svn clone –std-layout –authors-file=authors.txt http://{companyURL}/{teamName}/trunk/Project4 Project4

git svn clone –trunk=/trunk –branches=/branches –tags=/tags –authors-file=authors.txt http://{companyURL}/{teamName}/trunk/Project4 Project4

git svn clone –trunk=/trunk –branches=/branches –tags=/tags –authors-file=authors.txt http://{companyURL}/{teamName}/trunk/Project4 Project4 --no-minimize-url

git svn clone –trunk=/trunk/NemloginIntegration –branches=/branches/NemloginIntegration –tags=/tags/NemloginIntegration –authors-file=authors.txt http://{companyURL}/{teamName}/trunk/Project4 Project4

我最终按照 Dan Santos 的指南进行操作:Migrating-subversion-to-git

使用上述场景的示例:

git svn clone --prefix="" --trunk=/trunk/project4/ --branches=/branches/project4 --tags=/tags/project4 --authors-file=authors.txt http://{companyURL}/{teamName} Project4AsGit --no-minimize-url

这里的不同之处在于 URL 我用于 Repo 的仍然是父级别,只有分支、标签和主干被下钻到正确的位置。 --no-minimize-url 确保 git 不会远离这些钻取的 URLs.

Dan 提到的下一件事是使用“--prefix=""',因为这将使下面的 clean-git 命令按预期工作。我确实尝试过,但最终我没有让 SVN 标签变成 git 标签。

java -Dfile.encoding=utf-8 -jar svn-migration-scripts.jar clean-git