Hi, On Wed, 13 Jun 2007, Josef Weidendorfer wrote: > On Wednesday 13 June 2007, Johannes Schindelin wrote: > > ~1.4s log _with_ --pretty=raw > > ~3.5s log _with_ --pretty=raw _and_ -z (!) > > That happens on linux, too. > > I am not really familiar with that code, but comparision > of the call graphs of "git log" vs. "git log -z", as > produced by callgrind (shameless plug) and visualized > by kcachegrind (again, another shameless plug) shows > that the difference happens in log_tree_diff, called > >from log_tree_commit. That's a cool trick! And indeed it is: This code in revision.c is responsible: 1181 opts = diff_opt_parse(&revs->diffopt, argv+i, argc-i); 1182 if (opts > 0) { 1183 revs->diff = 1; 1184 i += opts - 1; 1185 continue; 1186 } Now, to tell which diff options actually need revs->diff to be set to 1, that is the question. Ciao, Dscho - 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