On Thu, 6 Mar 2008, Linus Torvalds wrote: > We will always unpack into our own internal index, but we will take the > source from wherever specified, and we will optionally write the result > to a specified index (optionally, because not everybody even _wants_ any > result: the index diffing really wants to just walk the tree and index > in parallel). > > This ends up removing a fair number more lines than it adds, for the > simple reason that we can now skip all the crud that tried to be > oh-so-careful about maintaining our position in the index as we were > traversing and modifying it. Since we don't actually modify the source > index any more, we can just update the 'o->pos' pointer without worrying > about whether an index entry got removed or replaced or added to. It looks to me like it's leaking stuff stored in the index it creates if it ends up failing. I'm not entirely sure of the index lifecycle stuff, but it seems like it would be necessary. Aside from that, I think it should be right, although I haven't really gone over the resulting code in detail. -Daniel *This .sig left intentionally blank* -- 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