3 ms·
This is true but packfiles are an implementation detail. It's still useful and more accurate conceptually to consider every commit as a complete snapshot of th
by emmelaich 9y ago
This is true but packfiles are an implementation detail.
It's still useful and more accurate conceptually to consider every commit as a complete snapshot of the state of code that point.
- jdmichal 9y agoThat can be said of every version control system. Restoration of state to any given version is their defining feature. How they achieve that is always an implementation detail, but those details can still be important and interesting.
- bbatha 9y agoGit commits are composed of all of the files in the commit, it’s parent and the commit message. This is an important guarantee that each checkout is valid without the rest of the repo. This allows you to have a lot of exotic implementations guarantee consistency between them. Meaning if your GitHub you can distribute commits across many servers. Or your Microsoft and you build partial checkouts for Gvfs. It’s what allows Git LFS to keep many of git’s core guarantees while making tradeoffs to improve areas where git is traditionally weak.
- emmelaich 9y agoSorta true but see what bbatha said. There are people who distinguish changeset oriented and snapshot oriented and will hotly debate that one or the other is better. But as you say, restoration of state is a necessary and defining feature.