On Sat, Apr 14, 2012 at 01:46:27AM +0800, Frederick LeMaster wrote:
This is probably wandering off topic, but git really does store snapshots of whole files, not patch lists or stacks of diffs. http://learn.github.com/p/intro.html http://eagain.net/articles/git-for-computer-scientists/
The git gc command and packing will compress stored objects and generate deltas and such, but absent that, your files are there byte for byte. http://metalinguist.wordpress.com/2007/12/06/the-woes-of-git-gc-aggressive-a...
Apparently it does use deltas of some sort to save on storage -- it's just a bit clever about how it organises them so you don't end up with enormously long chains of them. You're right that these deltas have no conceptual part of the data base -- that's quite independent. It's just a data storage technique. But it's effective enough that you don't have the complete text of many separate files taking up lots and lots of disk space, and that's what the original discussion was about, I think.
I don't think they are the usual diff deltas, though, but there's very little information there about just what it *does* do.
-- hendrik