On Mon, Feb 24, 2014 at 11:21 PM, Kirill Smelkov <kirr@xxxxxxxxxx> wrote: > Hello up there. > > Here go combine-diff speedup patches in form of first reworking diff > tree-walker to work in general case - when a commit have several parents, not > only one - we are traversing all 1+nparent trees in parallel. > > Then we are taking advantage of the new diff tree-walker for speeding up > combine-diff, which for linux.git results in ~14 times speedup. I think there is another use case for this n-tree walker (but I'm not entirely sure yet as I haven't really read the series). In git-log (either with pathspec or --patch) we basically do this diff HEAD^ HEAD diff HEAD^^ HEAD^ diff HEAD^^^ HEAD^^ diff HEAD^^^^ HEAD^^^ ... so except HEAD (and the last commit), all commits' tree will be read/diff'd twice. With n-tree walker I think we may be able to diff them in batch to reduce extra processing: commit lists are split into 16-commit blocks where 16 trees are fed to the new tree walker at the same time. I hope it would make git-log a bit faster (especially for -S). Maybe not much. -- Duy -- 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