我在 Git 服务器上执行了以下命令以将 Subversion 存储库迁移到 Git 存储库:
mkdir xyz.git
git init --bare xyz.git
svn git clone http://x.y.x.y/svn/CLF xyz.git
du -sh xyz.git
完成此操作后,Git 存储库的大小显示为 Subversion 存储库的两倍。我是否错误地运行了迁移?
有一个项目可以帮助您将 svn 转换为 git,https://github.com/nirvdrum/svn2git。这使用 git-svn。但听起来你已经执行了克隆(可能需要一段时间),也许看看这里的指南,因为仅仅使用 git-svn clone 是不完美的:
http://git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git
但是在回答您的问题时,git 存储库的大小可能会有所不同,具体取决于它们是否被打包。松散格式允许更快速地访问存储库,而打包格式如您所料,更小。您可以通过执行以下命令让 git 打包存储库:
git gc --prune=now --aggressive
git repack
这也会截断一个称为 reflog 的工具,该工具会跟踪您的编辑随时间的变化情况。这通常在使用代码时使用,而不是以这种方式执行导出。
当存储库完全打包时,您应该会发现它小于完整的 subversion 存储库。