[December]: a new object database and upcoming multi-pack index support #302
Byron
announced in
Progress Update
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The new object database
After the design-sketch for the new object database turned all lights to go, I managed to move forward and develop the sketch into a proof of concept. Starting out with minimal tests, it quickly became functional enough to let it run on its own in the
object-access
benchmark program. There it performed so admirably to allow it to become the only object database implementation from this point forward. Here are its features:Slots::Given
][store::init::Slots::Given] is used.commit graph and object age.
enter the same branch.
As of now the previous implementations are deprecated and will eventually be removed from the
git-odb
crate, andgit-repository
already uses the new oneMulti-pack index support
The new ODB already expects multi-pack indices and is merely waiting for an implementation of the multi-pack index file format. This one is now available and provides all the usual access methods. Integration it into the new ODB will start as soon as possible, and I don't expect any problems with that.
Once this work is completed,
gitoxide
finally has a production-ready object database with all the features one would expect, which will also serve as good foundation for adding support for additional file formats, like reachability bitmaps and reverse indices to speed up pack building.Community Outreach part 2
Now that "Learning Rust with Gitoxide
is completed, we moved onto season two's programming with
Getting into Gitoxide, a format to show how to use
git-repository` and how to extend it.Here is the playlist link: https://youtube.com/playlist?list=PLMHbQxe1e9MkEmuj9csczEK1O06l0Npy5
Sidney and I use it not only to improve the existing API surface, but also to show off latest improvements or undertakings as part of the usual
gitoxide
development. It also serves as preparation to help Sidney to get started ingit-repository
himself.git-repository
is getting betterAfter the last rounds of refactoring it feels like it's coming together. Previously there were quite a few shortcomings and inconveniences, but all of them have been removed by now. All this was possible due to learnings in
git-ref
andgit-odb
which allowed a lot of complexity to move down into the plumbing crates, where it belongs.git-ref
andgit-odb
now expect to provide a usable experience all by themselves, which in turn lead to great simplifications on the side ofgit-repository
.SHA256 support now has a tracking issue
In #281 one can now track the steps needed to get SHA256 support. In the past days I took the time to give it a push (and made the necessary breaking changes) to be parameterize most of the code-base.
At the end of this effort there could be a tool to convert repositories from one hash kind to another, with the intermediate step being the ability to read either one or the other, and write to it, too.
So much is still to be done though…
While the major undertakings are shaping up, some work-in-progress seems to be less lucky and doesn't see much movement.
A lot of work, and I am looking forward to all of it :).
Merry Christmas and a happy new year,
Sebastian
PS: The latest timesheets can be found here.
Beta Was this translation helpful? Give feedback.
All reactions