【发布时间】:2018-07-10 20:47:02
【问题描述】:
我一直致力于将约 32,000 次提交的 SVN 存储库转换为任何 DVCS(Git、Bazaar、Mercurial、Plastic SCM)。一两周后,我意识到最好的选择是将 SVN 存储库转换为 Git,获取快速导出流,然后将 .fe 流导入任何 DVCS,因为它们都支持 git 快速导出/导入方法。
我已经尝试了互联网上的所有内容:Windows 7 和 Linux Ubuntu。由于 repo 的大小,我使用 reposurgeon 和 git-svn 取得了最大的成功。但是同样,由于大小的原因,这两种工具都无法一次性隐藏完整的 repo。我也尝试过 SubGit,虽然它可以工作,但它非常慢(处理 1060 次提交大约需要 24 小时)。
所以我想我可以分别转换 repo 中的每个文件夹(主干、分支、标签、自定义文件夹),然后在 Git 中组合。然后我意识到这是不可能的,因为 git 的 repo 结构与 SVN 有很大不同。
我的问题是,是否可以使用我上面的方法并通过一些魔法将单独的转换合并到一个 Git 存储库中?
基本上我需要为我的 SVN 存储库获得一个快速的导出/导入流,以将其转换为另一个 DVCS,并且认为 Git 中间步骤是最简单的。如果有的话,还有哪些其他选项可用于成功转换?
提前致谢。
【问题讨论】:
-
您真的需要所有这些 32000 次提交来维护您的软件的当前版本吗?切断每一个超过一年的提交可能有助于减少需要处理的数据量,而不会真正丢失任何相关数据。通常你并不关心两年前谁提交了那组有错误的行——你关心的是“那些行真的很老而且有问题,让我们修复和重构吧”。
-
干杯@Sven。我同意你的看法;所有 32000 次提交都不是必需的,但越多越好,因为我们希望可能完全离开 SVN。仍然考虑到这一点,我该怎么做才能真正成功转换?有哪些选择?
标签: git svn git-svn reposurgeon