Re: git annotate runs out of memory
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Dec 11, 2007, 19:50 UTC
- Message-ID
- <alpine.LFD.0.9999.0712111146200.25032@woody.linux-foundation.org>
- In-Reply-To
- <alpine.LFD.0.9999.0712111122400.25032@woody.linux-foundation.org>
On Tue, 11 Dec 2007, Linus Torvalds wrote:
Show 6 quoted lines
> > We do that. The expense for git is that we don't do the revisions as a > single file at all. We'll look through each commit, check whether the > "gcc" directory changed, if it did, we'll go into it, and check whether > the "ChangeLog" file changed - and if it did, we'll actually diff it > against the previous version.
And, btw: the diff is totally different from the xdelta we have, so even if we have an already prepared nice xdelta between the two versions, we'll end up re-generating the files in full, and then do a diff on the end result.
Of course, part of that is that git logically *never* works with deltas, except in the actual code-paths that generate objects (or generate packs, of course). So even if we had used a delta algorithm that would be amenable to be turned into a diff directly, it would have been a layering violation to actually do that.
Other systems can sometimes just re-use their deltas to generate the diffs and/or blame information. I dunno whether SVN does that. CVS does, afaik.
Linus