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

Re: [PATCH v2] odb: add write_packfile, for_each_unique_abbrev, convert_object_id

From
Patrick Steinhardt <ps@pks.im>
Date
Mar 27, 2026, 07:04 UTC
Message-ID
<acYr5DZTPuOlyxvi@pks.im>
In-Reply-To
<DpRTZzuEPU7m8kvCckzHYEK380REXLfunHXO4hE3qgAZsKPSNtyqkBT2oRzusMxvIDgLVkt4FOis0HKBTEJPIRQgcbYM6QZdpzN6-Y-F7WE=@pm.me>
On Thu, Mar 26, 2026 at 02:21:07PM +0000, apaterson@pm.me wrote:
Show 10 quoted lines
> Of course, and my apologies, gitgadget is not formatting these
> messages as clearly as I would like them to be.
> 
> Both this series and the last were adapted from my fork that supports
> [1] with a feature similar to gitremote-helpers. My hope is that the
> fork can converge with master so that sqlite-git can become
> redistributable. The local backends vtable was already a step in this
> direction, so the question is if letting users bring their own local
> backends, the way they currently can with helpers for remote backends,
> is in scope for git core.

Thanks for the context! This also matches with our eventual goal, even though we rather envision that it makes more sense to maybe use a plugin in the form of a shared object instead of using a helper executable.

Show 9 quoted lines
> Either way, it sounds like series 1 will be covered by upstream, so
> next I would like to contribute support for git-local-* helpers. This
> allows users to create .git repositories with storage formats other
> than packs and builtin alternatives like reftables, which seems
> appropriate as direct sqlite support would probably be out of scope
> for core. Local helpers are already implemented in [2] but if it makes
> sense to hold off and rebuild it after e.g.
> ps/odb-generic-object-name-handling is merged, I am not in such a
> rush.

I've currently got around 10 more patch series pending that are mostly ready to be sent out, but that all build on one another. As said, there is a ton of stuff changing in the area of pluggable object databases, and I expect it'll probably take two more Git releases until we have fully carved out the foundation. Once that's done I think it should become quieter, and at that point it'll become easier to also do drive-by contributions without requiring too much coordination.

You can have a look at [1], which is our (non-official and GitLab-specific) epic for the work that we have planned over the next few months. Maybe it helps you a bit to figure out where we're going.

More concretely, next steps will be:
  - I plan to turn in-memory, loose and packed backends into proper ODB
    sources.
  - I plan to introduce backend-specific consistency checks.
  - I plan to introduce backend-specific logic for optimizations.
  - I plan to introduce backend-specific logic of generating packfiles.
  - Justin is revamping how writes work and plans to refactor existing
    callers that do ad-hoc transactions. This will also eventually cover
    writing packfiles into the ODB.

If you'd like to get involved earlier I'd propose that we sync off-list to figure out how to collaborate without stepping on each others toes all the time :)

Thanks!
Patrick
Previous: apaterson@pm.me
Message 5 of 5 in “odb: add write_packfile, for_each_unique_abbrev, convert_object_id”
  1. odb: add write_packfile, for_each_unique_abbrev, convert_object_idAaron Paterson via GitGitGadget, Mar 26, 2026
  2. odb: add write_packfile, for_each_unique_abbrev, convert_object_idAaron Paterson via GitGitGadget, Mar 26, 2026
  3. Patrick SteinhardtMar 26, 2026
  4. apaterson@pm.meMar 26, 2026
  5. Patrick SteinhardtMar 27, 2026

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.