2

我尝试在我们的主 git 存储库中运行垃圾收集,它说“错误:无法运行重新打包”,但我没有看到任何其他错误消息来帮助我确定问题。“git fsck”和“git fsck --strict”都愉快地完成,没有错误,但“git gc”和“git gc --agressive”都以:

%> git gc
Counting objects: 120867, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (58692/58692), done.
error: failed to run repack 57/120867)

有足够的内存和磁盘空间。我们正在使用 git 1.7.11

我不是很了解 git,但与此问题有关的其他问题似乎有一个特定的文件被提及并需要手动修复。我没有看到其他错误,也不知道如何继续修复它,如果它变得复杂,可能会使用带有解释或指向 git 主题的小词来提供任何帮助。

4

2 回答 2

3

我想通了,也许这会对其他人有所帮助。

我最终设置 GIT_TRACE=1 并运行“git gc”,它在唯一错误之前运行的最后一个命令是:

trace: built-in: git 'pack-objects' '--keep-true-parents' '--honor-pack-keep' '--non-empty' '--all' '--reflog' '--unpack-unreachable=2.weeks.ago' '--local' '--delta-base-offset' '/db/sds14/user2/cwolf/cg_sandbox/.git/objects/pack/.tmp-24230-pack'

手动运行该命令可以了解实际错误:

%> git 'pack-objects' '--keep-true-parents' '--honor-pack-keep' '--non-empty' '--all' '--reflog' '--unpack-unreachable=2.weeks.ago' '--local' '--delta-base-offset' '/db/sds14/user2/cwolf/cg_sandbox/.git/objects/pack/.tmp-24230-pack'
Counting objects: 120986, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (58821/58821), done.
Filesize limit exceeded

“无限文件大小”是让“git gc”再次工作所需要的。我不知道为什么这个系统错误在以另一种方式运行时对我隐藏。

于 2013-04-19T00:00:54.177 回答
2

我遇到了类似的情况,只是“无法运行重新打包”(覆盖“计数对象(#/#)”)并且没有其他错误消息;就我而言,所要做的就是使用该--aggressive选项来进行git gc工作(尽管没有该选项之后它仍然失败)

这是在 Windows 10 上;git 版本 2.19.0.windows.1

于 2018-10-03T21:42:46.287 回答