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

Re: [RFC PATCH 0/4] move pruned objects to a separate repository

From
JTJonathan Tan <jonathantanmy@google.com>
Date
Jun 29, 2022, 22:54 UTC
Message-ID
<20220629225405.1864460-1-jonathantanmy@google.com>
In-Reply-To
<cover.1656528343.git.me@ttaylorr.com>
Taylor Blau <me@ttaylorr.com> writes:
Show 6 quoted lines
> This series is an RFC for now since I'm interested in discussing whether
> or not this is a feature that people would actually want to use or not.
> But if it is, I'm happy to polish this up and turn it into a
> non-RFC-quality series ;-).
> 
> In the meantime, thanks for your review!

Thanks for this patch set. I can see this being used by, say, someone who wants to preserve a repo that rewinds branches all the time (the refs would need to be backed-up separately, but at least this provides a way for objects to be stored efficiently, in that reachable objects are still stored in the main repo and unreachable objects are stored in the backup with no overlap between them).

I think there is at least one more alternative that should be considered, though: since the cruft pack is unlikely to have its objects "resurrected" (since the reason why they're there is because they are unreachable), it is likely that the objects that are pruned are exactly the same as those in the craft pack. So it would be more efficient to just unconditionally rename the cruft pack to the backup destination.

Having said that, if there is a compelling use case for repacking even when we're moving from cruft pack to backup, the design of this patch set looks good overall. There are some minor points (e.g. the naming of the parameter "out" in patch 1), but I understand that this is an RFC and I'll wait for a non-RFC patch set before looking more closely at these things.

Previous: Taylor BlauNext: Taylor Blau
Message 6 of 9 in “move pruned objects to a separate repository”
  1. 0/4 move pruned objects to a separate repositoryTaylor Blau, Jun 29, 2022
  2. 1/4 builtin/repack.c: pass "out" to `prepare_pack_objects`Taylor Blau, Jun 29, 2022
  3. 2/4 builtin/repack.c: pass "cruft_expiration" to `write_cruft_pack`Taylor Blau, Jun 29, 2022
  4. 3/4 builtin/repack.c: write cruft packs to arbitrary locationsTaylor Blau, Jun 29, 2022
  5. 4/4 builtin/repack.c: implement `--expire-to` for storing pruned objectsTaylor Blau, Jun 29, 2022
  6. Jonathan TanJun 29, 2022
  7. Taylor BlauJun 30, 2022
  8. Jonathan TanJun 30, 2022
  9. Ævar Arnfjörð BjarmasonJun 30, 2022

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.