git filter-branches - 最后没有进展

标签 git

我刚刚使用 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/

相关文章:

windows - git - 两个分支名称相同?区别是一个小写 - 一个混合大小写?

git - 我如何运行 `git mv --index` (--index 选项在 git mv 上不可用)

Git Merge Conflict - 删除了远程文件,更改了本地文件

git - 公共(public) git 存储库

git - git存储模型是不是很浪费?

git - 将当前分支重置为上一次提交后无法推送

git - 缺少平衡此 if 语句的结尾

git - .gitignore 和删除缓存使得我看不到服务器上的文件?

ios - 在github上推送时Xcode不添加框架

Android studio - 整个 .idea 目录是否应该在 git ignore 中?