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

Re: [PATCH v2] repack: Add option to preserve and prune old pack files

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 10, 2017, 23:43 UTC
Message-ID
<xmqqmvcswvdc.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20170310220020.2666-1-jmelvin@codeaurora.org>
James Melvin <jmelvin@codeaurora.org> writes:
Show 10 quoted lines
> The new --preserve-and-prune option renames old pack files
> instead of deleting them after repacking and prunes previously
> preserved pack files.
>
> This option is designed to prevent stale file handle exceptions
> during git operations which can happen on users of NFS repos when
> repacking is done on them. The strategy is to preserve old pack files
> around until the next repack with the hopes that they will become
> unreferenced by then and not cause any exceptions to running processes
> when they are finally deleted (pruned).
This certainly is simpler than the previous one, but if you run
	git repack --preserve-and-prune 
	sleep for N minutes
	git repack --preserve-and-prune 

the second "repack" will drop the obsoleted packs that were preserved by the first one no matter how short the value of N is, no?

I suspect that users would be more comfortable with something based on expiration timestamp that gives them a guaranteed grace period, e.g. "--preserve-expire=8.hours", like how we expire reflog entries and loose objects.

Perhaps builtin/prune.c can be a source of inspiration?
Previous: James MelvinNext: Jeff King
Message 2 of 6 in “repack: Add option to preserve and prune old pack files”
  1. repack: Add option to preserve and prune old pack filesJames Melvin, Mar 10, 2017
  2. Junio C HamanoMar 10, 2017
  3. Jeff KingMar 12, 2017
  4. Junio C HamanoMar 12, 2017
  5. Martin FickMar 13, 2017
  6. Ævar Arnfjörð BjarmasonMar 11, 2017

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.