6

简单的问题,我正在尝试git gc在有配额的机器上运行。在 gc 之前,我的使用量约为 18GB,几乎所有这些都是我克隆的 git 存储库。我的磁盘限制是 25GB。在git gc操作过程中,有足够的临时文件写入磁盘以达到我的限制,从而导致git gc操作失败。

我可以.git/objects/pack/tmp_pack_*在操作失败后删除并恢复到 18GB 的​​使用量,但我真的很想真正完成git gc并恢复一点性能。

是否有一些我可以使用的花哨的选项(或一系列其他 git 命令)不涉及首先将 > 7GB 的临时文件写入磁盘?

4

3 回答 3

2

哪一部分gc对你很重要?您可以尝试分别运行git-prunegit-repack部分。使用git-prune,请务必使用该--expire选项指定截止日期。如果您的存储库中有大量松散的对象,首先将它们排除在外会很有帮助。 *

使用git-repack,您可能会弄乱深度和窗口设置,以获得足够小的东西以在您拥有的空间内运行。

* 我不会假装完全理解所涉及的所有问题,但我确实注意到在 git-gc 代码中重新打包之后进行了修剪。

于 2009-12-05T00:49:31.907 回答
0

看起来最好的解决方案是要求 IT 提供更大的配额,但我仍然有兴趣听到解决方法。今天他们感觉很慷慨,但明天...... :)

于 2009-12-05T00:21:13.197 回答
-1

git prune是一个很好的建议,很好的呼叫 Jefromi。

您可以做的另一件事是压缩其他文件;git gc; 解压。

7z获得惊人的压缩,但不会保留硬链接和 Unix 所有者/组,IIRC。如果您有配额,则文件可能全部归您的帐户所有,因此无需担心第一次得分。但最安全的是tar c --lzma如果你有它,或者只是tar czfcjf。如果您有很多小文件,那么高达块大小的 umm、外部(?)碎片可能很重要。

于 2009-12-05T07:50:19.950 回答