On Wed, May 22, 2013 at 6:42 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: > >>>> The person who moved the code will be on the list regardless, >>> >>> That is exactly the point I have been trying to raise. Does the >>> person appear in the list when you run blame with -CCC? You ask for >> >> s/person/commit/; >> >>> the body of the function, and the -C mode of blame sees through the >>> block-of-line movement across file boundaries, and goes straight to >>> the last commit that touched the body of the function in its original >>> file, no? > > -- >8 -- > cd /var/tmp/ > git init blame > cd blame > > cp /src/git/COPYING COPYING > git add COPYING > git commit -m initial > > sed -ne 120,140p COPYING >EXTRACTING > git add EXTRACTING > git commit -m second > > git blame -C -C -C EXTRACTING > -- 8< -- I just realized that -CCC does not do the same thing as -C -C -C. > then the commit that did add these lines to EXTRACTING touched > COPYING, and the origin of these lines are traced to it (this is > designed to be useful in a typical "refactor by moving code"; > "cut and paste without changing the original" people need heavier > copy detection with more -C). > > IIRC, git-gui runs two blames, one without any -C and one with (I do > not offhand recall how many -C it uses) to show both. 'git blame' is a very expensive operation, perhaps we should add another option so users don't need to run two blames to find this. -- Felipe Contreras -- 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