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...
-Fred
On Sat, Apr 14, 2012 at 12:58 AM, Marc Feeley feeley@iro.umontreal.ca wrote:
On 2012-04-13, at 12:49 PM, Hendrik Boom wrote:
On Fri, Apr 13, 2012 at 11:14:45AM -0400, Marc Feeley wrote:
And also, as far as I know, git stores the *whole* file as soon as there is a change in the file (whether it is one byte or all the bytes).
Even the ancient RCS didn't do that. As far as I know, all source-code versioning systems store something like difference files to save space. Some of them get wuite sophisticated.
I thought I read somewhere that Linus had decided to store whole files because this was faster. But I may be confusing this with some other aspect of git. In any case, the generated .c files change so much for minor changes of the .scm files that there's no advantage to store a diff for them instead of a copy of the .c file (which is about 6 to 10 times larger than the .scm file) . For the .scm files there is certainly an advantage to using a diff.
Marc
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list