Re: detecting rename->commit->modify->commit
- From
Jeff King <peff@peff.net>
- Date
- May 1, 2008, 14:45 UTC
- Message-ID
- <20080501144524.GA10876@sigill.intra.peff.net>
- In-Reply-To
- <4819CF50.2020509@tikalk.com>
On Thu, May 01, 2008 at 05:10:24PM +0300, Ittay Dror wrote:
> Say I have a file A, I rename to 'B', commit, then change file B and > commit. Does 'git diff -M HEAD^^..' detect that? From what I see now, it > will show 'B' as new (all of it with '+' prefix in the output). Am I > right?
Yes, it should find it, assuming the changes to B leave it recognizable. Try:
mkdir repo && cd repo && git init cp /usr/share/dict/words A git add . && git commit -m added mv A B && git add B && git commit -a -m rename echo change >>B && git commit -a -m change git diff -M HEAD^^.. | head -n 7
You should see something like:
diff --git a/A b/B similarity index 99% rename from A rename to B index 8e50f11..6525618 100644 --- a/A +++ b/B
However, note the similarity index. If you change B so much that it doesn't look close to the original A, then the rename is not detected (and intentionally so -- the argument is that it is no longer a rename in that context, but a rewritten file).
-Peff