Re:Firefox Development Is Moving from Mercurial to Git
by j16sdiz on Monday November 06, 2023 @11:43PM
(#38173338)
git don't really store diffs. It is a mix of both.
Unpacked commits are snapshots.
Re:Firefox Development Is Moving from Mercurial to Git
by andrewaylett on Wednesday November 08, 2023 @12:55PM
(#38194223)
Layers of abstractions. From the outside, we see diffs (or checked out trees). Looking at the next layer in, every file in every commit is present in the DAG. Then the storage layer deduplicates and packs similar blobs as binary diffs.
It's quite neat, the object DAG is the canonical representation, but we can optimise on one side for efficient storage and on the other side for our preferred visual representation. Both without particularly needing to worry about the canonical representation being an abstraction, as it's quite good at not being a leaky abstraction.
but there are operations that get the diffs (interactive rebase for example)
so, git, in typical UNIX fashion, is a bit of both.