Re: Git log can not show history before rename
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Jan 30, 2009, 17:17 UTC
- Message-ID
- <alpine.LFD.2.00.0901300910580.3150@localhost.localdomain>
- In-Reply-To
- <1976ea660901300429i6d9b3594m91222314c284d184@mail.gmail.com>
On Fri, 30 Jan 2009, Frank Li wrote:
> > Does it conflict with --parents?
Yes. --follow and --parents do not play well together.
That's simply because --follow is a total hack, meant to just satisfy ex-SVN users who never knew anything about things like parenthood or nice revision graphs anyway.
It's not totally fundamental, but the current implementation of "--follow" is really a quick preprocessing thing bolted onto the revision walking logic, rather than beign anything really integral.
If you want --follow to really work together with --parents (and to do the right thing wrt merges etc - different renames coming in through different branches), you'd really have to rewrite the whole --follow logic.
One approach is to use --follow as the quick hack it is - and then when you see "oh, file X was renamed from file Y", and you want to see the nice full history, you go back to the native git model (which is not --follow), which is based on pathname pattherns, and then do
gitk -- X Y
to see the history of _both_ names, and now the rename will show up properly (and now you'll get proper parenthood because you're no longer using the hackish --follow thing).
If somebody wants to do a more intelligent --follow, I can only applaud, but I'm personally not likely to look into it.
Linus