From: Ittay Dror Date: Thu, 01 May 2008 15:08:33 GMT Subject: Re: detecting rename->commit->modify->commit Message-ID: <4819DCF1.7090504@tikalk.com> In-Reply-To: <20080501144524.GA10876@sigill.intra.peff.net> But it doesn't work across directories :-(. Try: >mkdir foo >echo "hello" > foo/A >git add foo/A >git commit -m 'foo/A' >mkdir bar >git mv foo/A bar >git commit -m 'bar/A' >echo "world" >> bar/A >git add bar/A >git commit -m 'bar/A world' >git diff HEAD^^..HEAD^ | cat diff --git a/foo/A b/bar/A similarity index 100% rename from foo/A rename to bar/A > git diff HEAD^^.. | cat diff --git a/bar/A b/bar/A new file mode 100644 index 0000000..94954ab --- /dev/null +++ b/bar/A @@ -0,0 +1,2 @@ +hello +world diff --git a/foo/A b/foo/A deleted file mode 100644 index ce01362..0000000 --- a/foo/A +++ /dev/null @@ -1 +0,0 @@ -hello Jeff King wrote: > 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 > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- Ittay Dror Tikal Tikal Project