Subject: Re: [BUG] Move tracking in git diff is not as good as in git status

From: Junio C Hamano <[email-masked]>
Date: Thu, 05 Feb 2015 11:01:59 -0800

"Kyle J. McKay" <[email-masked]> writes:

> On Feb 4, 2015, at 22:11, Scott Schmit wrote:
>
>> In my use of git, I've noticed that "git status" is a lot better at
>> tracking moves and renames than "git diff", and this has recently
>> caused
>> me a lot of headaches because a large number of moves were made in a
>> single commit, and it was very difficult to figure out which moves
>> were
>> right and which were wrong.
>>
>> I was using a fairly old version of git (1.7.11), but was able to
>> reproduce it on git 2.2.1.
>>
>> Here's a reproduction recipe:
> [...]
>> # Now "shift" the files
>> git mv 2 3
>> git mv 1 2
> [...]
>> git commit -m "2=1;3=2;"
>>
>> # Neither of these commands get it (but -C gets a glimmer of the
>> truth)
>> git diff -M --stat --summary HEAD~..
>> git diff -C --stat --summary HEAD~..
>
> Ah, but did you try this:
>
>   git diff -B -M --stat --summary HEAD~..

Yes, since f714fb84 (Enable rewrite as well as rename detection in
git-status, 2007-12-02) "git status" internally uses "-B -M".