Git object storage already does this, and it is not negotiable.
The Git object base is focused on snapshot, individual blob files, and directories - tree .
Confirm this easily by looking under .git/objects or by doing
git rev-list --objects --all
Now, after a while, for efficiency, the database of objects will be βcompressedβ (known as packaging). This leads to storage efficiency, but does not include sotring debate.
Background
Delta storage has been popularized by RCS, CVS, Subversion, and others (SourceSafe?). Mostly because the model has simplified the transfer of sets of changes because they would already be in the form of a delta. Modern VCS-es (mostly distributed) have evolved from this and put emphasis on data integrity .
Data integrity
Due to the design of the object database, git is very reliable and will detect any corrupted data bit anywhere in the snapshot or the entire repo. See this post for more information on the cryptographic properties of git repositories: Linux - git vs. data corruption?
In techno-chatter: capturing stories form cryptographically strong measurement trees. When the sum sha1 of the commit (HEAD) vertex matches, it mathematically follows that
- tree contents
- branch history (including all accounts and committer / author credentials)
identical. This is a huge git security feature (and other SCMs that use this design feature)
source share