From: Patrick Steinhardt <ps@pks.im>
To: Aaron Paterson via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, Aaron Paterson <apaterson@pm.me>
Subject: Re: [PATCH v2] odb: add write_packfile, for_each_unique_abbrev, convert_object_id
Date: Thu, 26 Mar 2026 14:58:16 +0100 [thread overview]
Message-ID: <acU7eJ0MpUVhCs6-@pks.im> (raw)
In-Reply-To: <pull.2074.v2.git.1774532383055.gitgitgadget@gmail.com>
On Thu, Mar 26, 2026 at 01:39:43PM +0000, Aaron Paterson via GitGitGadget wrote:
> From: Aaron Paterson <apaterson@pm.me>
>
> Add three vtable methods to odb_source that were not part of the
> recent ps/odb-sources and ps/object-counting series:
>
> - write_packfile: ingest a pack from a file descriptor. The files
> backend chooses between index-pack (large packs) and
> unpack-objects (small packs below fetch.unpackLimit). Options
> cover thin-pack fixing, promisor marking, fsck, lockfile
> capture, and shallow file passing.
>
> - for_each_unique_abbrev: iterate objects matching a hex prefix
> for disambiguation. Searches loose objects via oidtree, then
> multi-pack indices, then non-MIDX packs.
>
> - convert_object_id: translate between hash algorithms using the
> loose object map. Used during SHA-1 to SHA-256 migration.
This will conflict with ps/odb-generic-object-name-handling, which
already introduces generic callbacks for `for_each_unique_abbrev()`.
There's also ongoing work by Justin to handle writing packfiles via the
ODB transaction interface.
> Also add ODB_SOURCE_HELPER to the source type enum, preparing for
> the helper backend in the next commit.
Huh.
> The write_packfile vtable method replaces the pattern where callers
> spawn index-pack/unpack-objects directly. fast-import already uses
> odb_write_packfile() and this allows non-files backends to handle
> pack ingestion through their own mechanism.
I'm again a bit puzzled, same as with your previous patch series. It
would be nice to collaborate on this topic, but that will require a bit
more coordination than just sending in a patch series as things are
quite in flux here.
Patrick
next prev parent reply other threads:[~2026-03-26 13:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-26 13:07 [PATCH] odb: add write_packfile, for_each_unique_abbrev, convert_object_id Aaron Paterson via GitGitGadget
2026-03-26 13:39 ` [PATCH v2] " Aaron Paterson via GitGitGadget
2026-03-26 13:58 ` Patrick Steinhardt [this message]
2026-03-26 14:21 ` apaterson
2026-03-27 7:04 ` Patrick Steinhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=acU7eJ0MpUVhCs6-@pks.im \
--to=ps@pks.im \
--cc=apaterson@pm.me \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.