News for hackers. Stuff that matters.
Re:Git’s database internals I: packed object store by masklinn on Monday August 29, 2022 @11:56AM (#32639741)
> Modern CRDTs are massively more space efficient than git but nobody seems to notice or care about the size of our git repositories.

The packing process explained in the article is why: rather than make compression an intrinsic part of the system's model (which most VCS do / have done), git moves it to a later "optimisation" phase. This is an additional and somewhat odd costs, but on the other hand it can be extremely efficient (at $DAYJOB we've got files whose compression ratio is 99%).

An other interesting bit (which makes it very annoying to inspect the raw contents of a git repo) is that git DEFLATEs object contents when it stores them on-disk. But while that's clearly documented for packfiles (although the lack of end-of-data marker is implicit and extremely annoying), it's not really spelled out for loose object, you get to find out when you can't make heads or tails of loose objects, and git barfs at your hand-crafted loose objects.

There are no comments on this comment yet.