清理大型裸 git 存储库失败

清理大型裸 git 存储库失败

我无法清理 git repo。如果我尝试清理,我会收到以下错误消息:

$ git gc
Counting objects: 8828, done.
fatal: Cannot handle files this big
error: failed to run repack

如果我谷歌一下,结果实际上只有 2 个:这个问题和错误信息,这是 pastebin 条目,是在我第一次在这里发布这个问题 2 分钟后提交的。所以似乎没有其他人遇到这个问题。

当然,git 跟踪了一个 4.8 GB 的文件,git 运行时在我的笔记本电脑上占用大约 8 到 9 GiB 的虚拟内存git gc,而我的 raspi 只有 1 GB 的物理内存。但是,它通常有 1 GiB 交换空间,我刚刚添加了 30 GiB 交换空间来执行此操作。所以它应该有足够的内存。

不幸的是,错误消息中没有包含 cleanup 命令无法处理这么大的文件的原因。所以我不知道我的系统的限制属性是什么。

问题是什么?是否可以在树莓派上进行清理?(对我来说,将其转移到台式计算机似乎不是一个好的解决方案。)

我实际上计划使用我的 raspi 清理一些更大的 repos,因为它无论如何都会运行,这样我可能不需要让我的电脑运行几个小时。

我以为克隆仓库可能会产生一个清理过的仓库。但是,我得到了以下输出:

$ git clone ../Documents
Cloning into 'Documents'...
done.
fatal: Cannot handle files this big   
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

但是,添加--bare到 clone 命令后会立即返回,没有任何错误。(可能是 ext4 的某些魔法在起作用,因此文件在写入时被复制。)不用说,没有进行清理。但这可能包含一个线索,所以我让你知道了。

答案1

这是 git 中的一个错误。我告诉了 git 邮件列表中的人员这个问题,他们修复了它。补丁在最新的几个版本中。

相关内容