From: Linus Torvalds Date: Wed, 18 Jan 2006 23:15:06 GMT Subject: Re: Joining Repositories Message-ID: In-Reply-To: On Wed, 18 Jan 2006, Linus Torvalds wrote: > > As an example, let's say that you have a git repository that has had a > file called "A" some time in the past. That file gets renamed to B, and > then gets renamed back again to A. The old "git-rev-list" would show two > commits commits: the commit that renames B to A (because it changes A) > _and_ as its parent the commit that renames A to B (because it changes A). Btw, in case somebody doesn't see what's wrong with that (because those two commits happen to be the only ones that matter), let's point out that the file may have changed while it was called "B". So to do annotation, we really need to _stop_ following the filename, start following the previous one. Now, the logic to do that could have been in the "annotate" parts, but the decision to stop following the chain actually makes sense as part of git-rev-list, since it does the tree difference tracking anyway. Linus