On Fri, 16 Mar 2007, Shawn O. Pearce wrote: > > The entire reason this happened is hysterical raisins. Your first > draft of Git had trees as one flat structure, sorting complete > paths by their memcmp result. Which is dead simple and worked. No. It's *not* historical reasons. That's what I tried to explain. It's absolutely *required*. Not because of the old flat layout, but because we want read-tree to translate 1:1 into the index. And the index is a flat file. And it *needs* to be a flat file, because we need to open it and read it efficiently. If it wasn't a flat file, we'd have all the index operations taking as long as the tree operations take. > Now we are stuck with it. No. How you need to accept it. It's that easy. It's not "stuck". It's "correct". That's why I reacted to your irc thing. You seemed to think (and still apparently do) that the sorting is some messy mistake. It's anything but. So yes, "foo" is *different* from "foo/". You just need to realize that they are two totally different entries. They have absolutely no relationship what-so-ever with each other, except that you obviously must not add one when the other exists. Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html