git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git gc leaved my disk 100% full

From
Jeff King <peff@peff.net>
Date
Feb 4, 2016, 07:58 UTC
Message-ID
<20160204075823.GB21161@sigill.intra.peff.net>
In-Reply-To
<20160119170957.6e69ebb8@endymion.delvare>
On Tue, Jan 19, 2016 at 05:09:57PM +0100, Jean Delvare wrote:
Show 18 quoted lines
> Earlier today my desktop environment warned me that my /home was almost
> full. I thought that running "git gc" on my git trees would maybe save
> some disk space.
> 
> Unfortunately the opposite happened. "git gc" failed on me with:
> 
> fatal: sha1 file '.git/objects/pack/tmp_idx_XW7opV' write error: No space left on device
> error: failed to run repack
> 
> and at that point the partition was 100% full. My git repository went
> from 2.2 GB to 3.3 GB in the process, this is why.
> 
> While I understand the value of preserving temporary files for
> debugging purpose, I don't think it makes sense in the context of the
> "gc" command which precisely should get rid of such temporary files.
> 
> So please consider fixing "gc" so that it cleans up any temporary file
> in case of failure.

I agree that it would be nice to auto-clean failed object creation. Or at least make it a configurable option. We have hacky patches at GitHub to do so unconditionally, as we ran into problems with failed pushes piling up.

I didn't send it upstream, because it involved building against a separate and ugly tempfile API. Now that we have tempfile.[ch] upstream, I think it wouldn't be too hard to do with register_tempfile().

-Peff
Previous: Jean Delvare
Message 2 of 2 in “git gc leaved my disk 100% full”
  1. Jean DelvareJan 19, 2016
  2. Jeff KingFeb 4, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.