3

我正在编写一个通用的 svn ->git 迁移脚本,它允许比标准更多的git svn clone脚本,并且在我的脚本的一个阶段,我正在检查迁移存储库中每个分支的输出git svn show-externalsgit svn show-ignore并根据这些命令的输出采取各种步骤。

我现在的问题是,虽然我的脚本的其余部分执行得非常快,但这两个命令似乎占据了我绝大多数的运行时间。在某些情况下,git svn show-externals运行需要超过 10 分钟(在包含大约 5000 个文件的 repo 上)。当在具有 10 个或更多分支的这种大小的存储库上运行时,您可以想象这会大大增加。

为什么这个操作需要这么长时间才能执行?我能做些什么来加快它的执行速度吗?

4

1 回答 1

4

“git svn show-ignore”对每个目录执行一个额外的 SVN 请求。

出于迁移目的,您可能想看看SubGit工具。它为每个修订版翻译 svn:ignore -> .gitignore(并且它还翻译 svn:eol-style、标签等)。唯一的限制:它需要本地访问 SVN 到存储库。因此它可以与svnrdump工具结合使用。如果您在本地拥有 SVN 存储库,则只需一步即可完成迁移:

$ subgit install path/to/svn/repo
于 2012-05-21T16:31:40.790 回答