Junio C Hamano <gitster <at> pobox.com> writes: > An interesting comparison may be to run this once: > > $ git show branch:file >fileI > > and then compare between these two: > > $ diff -u fileI file > $ git diff --no-index fileI file In all times below, "file" is the same file i used in original report. $ time diff -u fileI file > /dev/null real 0m0.002s user 0m0.000s sys 0m0.000s $ time git diff --no-index fileI file > /dev/null real 0m0.331s user 0m0.270s sys 0m0.060s Same with "pu" branch (has 27af01d): $ time ~/git/git-diff --no-index fileI file > /dev/null real 0m0.307s user 0m0.220s sys 0m0.080s > > If the latter is slower than the former in the same way as the original > experiment, that would mean that the tree traversal time does not have > anything to do with it (iow, your "The way 'git diff' is now, it does > that" is not just incorrect---we don't read the full tree to begin > with---but irrelevant). I still suspect tree traversal. Original report with "pu" branch is still 30s. -- To unsubscribe from this list: 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