Re: Use a *real* built-in diff generator
From: Marco Costalba <hidden>
Date: 2016-06-15 22:42:22
On 3/25/06, Linus Torvalds [off-list ref] 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.580sCurrently '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