From: Felipe Contreras Date: Wed, 22 May 2013 23:57:33 GMT Subject: Re: [PATCH v6] Add new git-related helper to contrib Message-ID: In-Reply-To: <7vzjvmh98r.fsf@alter.siamese.dyndns.org> On Wed, May 22, 2013 at 6:42 PM, Junio C Hamano wrote: > Junio C Hamano 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