Hi Ulrich, Is there any chance you could share the repo where this is coming from? This is actually something a colleague and I are looking into seeing if we can crunch out some performance gains since -C -C isn't threaded. Sam On Fri, Mar 31, 2017 at 10:52 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > "Ulrich Windl" <Ulrich.Windl@xxxxxxxxxxxxxxxxxxxx> writes: > >> I was running "vc-annotate" in Emacs for a file from a large >> repository (>40000 files, a big percentage being binary, about 10 >> commits). For the first file the result was presented rather soon, but >> for a second file the command did not finish even after about 10 >> minutes! >> >> The file in question is a rather short text file (124 kB), and >> according to git log it has one commit. >> >> While being bored, I did an strace of the command to find out that a >> huge number of files is inspected. > > With -C -C the user (vc-annotate?) is asking to inspect huge number > of files, to find if the contents of the file (except for the part > that came from its own previous version) came from other existing > files. So this is very much expected. > > It might not be a bad idea to teach "blame" not to pay attention to > any path that is marked as "-diff" (e.g. binary files) when trying > to see if remaining contents appeared by borrowing from them. We do > not have that heuristics (yet).