2009-12-04 88 views
5

簡單的問題,我試圖在配額機器上運行git gc。 Pre-gc,我大約有18GB的使用量,幾乎所有的都是我克隆的git倉庫。我的磁盤限制是25GB。在git gc操作期間,將足夠的臨時文件寫入磁盤以達到我的限制,從而導致git gc操作失敗。git gc on quota

我可以在失敗的操作後刪除.git/objects/pack/tmp_pack_*並回到18GB的使用情況,但是我真的很想完成git gc並回收一些性能。

是否有一些奇特的選擇(或一系列其他git命令),我可以使用它不涉及到首先寫入> 7GB的臨時文件到磁盤?

+0

你運行的是哪個版本的git? – 2009-12-04 22:20:47

+0

git版本1.6.4-kb5 – 2009-12-04 23:44:36

回答

2

gc的哪部分對你很重要?您可以嘗試單獨運行git-prunegit-repack部件。使用git-prune,請確保使用--expire選項指定截止日期。如果您的回購中有大量鬆散物品,請首先將它們排除在外,這將有所幫助。*

使用git-repack,您可能會混淆深度和窗口設置以獲得足夠小的內容以便在你有空間。 *我不假裝完全理解所涉及的所有問題,但我注意到在git-gc代碼中重新包裝之後,剪枝來到

0

看起來最好的解決方案是要求IT獲得更大的配額,儘管我仍然有興趣聽到解決方法。今天他們感到慷慨,但明天...... :)

1

git prune是一個很好的建議,很好的叫Jeutti。

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

7z獲得驚人的壓縮,但不會保留hardlinks和Unix所有者/組IIRC。如果您有配額,這些文件可能全部歸您的帳戶所有,所以不用擔心第一個分數。但最安全的是tar c --lzma,如果你有,或只是tar czfcjf。如果您有很多小文件,則umm,外部(?)碎片最多可達到塊大小。