Messages in this thread | | | Date | Sat, 20 Oct 2007 11:19:32 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: git/cscope with x86 merge |
| |
On Sat, 20 Oct 2007, Sam Ravnborg wrote: > > But you do not see the rename arch/x86_64/kernel/{vmlinux.lds.S => vmlinux.lds.S}
Umm. What you are describing isn't a rename - that's the same name. Do you perhaps mean vmlinux.lds.S => vmlinux_64.lds.S ?
And yes, it doesn't show that as a rename, because of the fact that the
arch/x86_64/kernel/vmlinux.lds.S
file actually *remained*, so it wasn't really a rename. It just got almost all of its data changed.
So there was never really a rename: there was a "copy" and a "rewrite". And "git --follow" doesn't follow copies.
However, "git blame" does do so. So if you do
git blame -C arch/x86/kernel/vmlinux_64.lds.S
(where that -C tells it to follow data across file copies), it will actually show the history down, line for line!
But when you try to follow the history of the whole *file*, git sees that the filename still existed of the source, so it won't consider that a candidate for renames!
I could perhaps look at making "git log --follow" also break up files that got totally rewritten (git already has a notion of "-B" to do that), but no, we don't do it right now. (But one of the advantages of the git model is that none of this is hardcoded in the repository data itself, so we can improve the rename following and it will automatically work with any repo, even one created with older git versions)
Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |