我刚刚使用 cvs2git 在一个 git 仓库中转换了一个 10G CVS 仓库(大约 120 个模块),在 RHEL5 机器上没有任何错误。 我想从存储库中拆分一个子目录+历史并创建一个新的。 (例如:How can I move a single directory from a git repository to a new repository whilst maintaining the history?)
我试过:
git filter-branch --subdirectory-filter xxx.model -- --all
它工作正常,直到最后一个项目被处理 - 然后它挂起使用 CPU 没有任何进展。
使用 strace
,它看起来像这样:[断开的链接]。
strace
- 所有的 fork 最终输出 >2.5G - 我不知道它是否变大了;我阻止了它。
是什么导致了这种奇怪的行为? 有没有其他方法可以使用现有存储库的子目录+历史创建新存储库?
最佳答案
运行数小时后,操作成功完成。唯一的问题是,在我们看来似乎没有任何进展,但事实并非如此。只是没有输出。
设置 GIT_TRACE=1 并重做命令,可以看到输出和进度。
可能是标签数量过多导致操作变慢。
关于git filter-branches - 最后没有进展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3752557/