From: Junio C Hamano Date: Thu, 05 Feb 2015 19:01:59 GMT Subject: Re: [BUG] Move tracking in git diff is not as good as in git status Message-ID: In-Reply-To: <099A7D2D-6033-4A16-91DD-E2288BC5C729@gmail.com> "Kyle J. McKay" 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".