我刚刚使用 cvs2git 在一个 git repo 中转换了一个 10G CVS repo(大约 120 个模块),在 RHEL5 机器上没有任何错误。我想从存储库中拆分一个子目录+历史记录并创建一个新的。(例如:如何在保持历史记录的同时将单个目录从 git 存储库移动到新存储库?)
我试过:
git filter-branch --subdirectory-filter xxx.model -- --all
Run Code Online (Sandbox Code Playgroud)
工作正常,直到处理完最后一个项目 - 然后它使用 CPU 挂起而没有任何进展。使用strace,它看起来像这样:[断开的链接]。
strace- 所有分叉最终输出 > 2.5G - 我不知道它是否会变大;我阻止了它。
是什么导致了这种奇怪的行为?是否有任何其他方法可以使用现有存储库的子目录+历史记录创建新存储库?
经过数小时的运行,操作成功完成。唯一的问题是,在我们看来似乎没有任何进展,但事实并非如此。只是没有输出。
设置 GIT_TRACE=1 并重做命令,输出和进度可见。
大量标签可能会导致操作变慢。