On 3/25/06, Linus Torvalds <torvalds@xxxxxxxx> wrote: > > This uses a simplified libxdiff setup to generate unified diffs _without_ > doing fork/execve of GNU "diff". > > This has several huge advantages, for example: > > Before: > > [torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null > > real 0m24.818s > user 0m13.332s > sys 0m8.664s > > After: > > [torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null > > real 0m4.563s > user 0m2.944s > sys 0m1.580s > Currently 'getting the diffs' is the second most important time consumer of annotation calculation (just after getting the file history). On big and heavily modified files, as drivers/net/tg3.c in Linux tree, this can be very slow (around 10s on my box). The profiling has been done on qgit, but I think it is of general interest because qgit uses git-rev-list and git-diff-tree -p to get file's history and diffs respectively. So this patch is more then welcomed! Thanks! Marco - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html