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