在配额的机器上git gc

时间:2009-12-04 22:06:10

标签: git quota git-gc

简单的问题,我正在尝试在配额的计算机上运行git gc。 Pre-gc,我的使用率约为18GB,几乎所有这些都是我克隆的git存储库。我的磁盘限制为25GB。在git gc操作期间,足够的临时文件将写入磁盘以达到我的极限,从而导致git gc操作失败。

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

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

3 个答案:

答案 0 :(得分:2)

gc的哪一部分对您很重要?您可以尝试分别运行git-prunegit-repack部分。使用git-prune时,请确保使用--expire选项指定截止日期。如果您的仓库中有大量松散的物体,首先将它们放在一边会有所帮助。*

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

*我不会假装完全理解所涉及的所有问题,但我注意到在重新包装git-gc代码后,修剪

答案 1 :(得分:0)

看起来最好的解决方案是让IT获得更大的配额,不过我仍然有兴趣听取解决方法。今天他们感到很慷慨,但明天...... :)

答案 2 :(得分:0)

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

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

7z得到惊人的压缩,但不会保留硬链接和Unix所有者/组,IIRC。如果您有配额,这些文件可能全部归您的帐户所有,因此不必担心第一个分数。但最安全的是tar c --lzma如果你有,或只是tar czfcjf。如果你有很多小文件,那么umm,外部(?)碎片可能会非常重要。