> I think that 40% sounds about right. My understanding of the > underlying format CVS uses, RCS, is that it stores an full copy > of the tip of trunk uncompressed, and other versions of the file > are represented as incremental delta from that. The packed git > format does not favor particular version based on the distance > from the tip, and stores either a compressed full copy, or a > delta from some other revision (which may not necessarily be > represented as a full copy). When we store something as a delta > from something else, we limit the length of the delta chain to a > full copy to 10 (by default), so that you can get to a specific > object with at most 10 applications of delta on top of a full > copy. If I understand this right, that means that for a log file (in this case a ChangeLog file) that is appended to linearly as a function of revision number, we have... cvs: O(n) archive size git: O(n*n) archive size At least that is what we get if revision N is always deltad over revision N-1. A good deal could be saved if instead of dumping a full copy every 10 revisions, that revision would instead be deltad off an earlier revision, but I think it'll still be O(n*n). (/me prepares for Linus chiming in and telling me I should not keep ChangeLog files, :-) M. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Mon Jan 30 01:20:23 2006
This archive was generated by hypermail 2.1.8 : 2006-01-30 01:20:32 EST