Re: [PATCH 3/3] Use struct tree in diff-tree
- From
Daniel Barkalow <barkalow@iabervon.org>
- Date
- Jan 31, 2006, 21:49 UTC
- Message-ID
- <Pine.LNX.4.64.0601311626070.25300@iabervon.org>
- In-Reply-To
- <7virs0uma8.fsf@assigned-by-dhcp.cox.net>
On Tue, 31 Jan 2006, Junio C Hamano wrote:
Show 25 quoted lines
> Linus Torvalds <torvalds@osdl.org> writes: > > > On Sun, 29 Jan 2006, Daniel Barkalow wrote: > >> > >> It had been open-coding a tree parser. This updates the programs that > >> call diff_tree() to send it the struct tree instead of a buffer and > >> size. > > > > Please don't. > > ... > > Junio, please don't apply this. > > > > Linus > > I haven't, and I won't. From my gut feeling I did not even > place it in "pu". After timing it myself and then looking at > the code I agree with your analysis. > > The one to git-tar-tree I've already applied, mostly because I > was not careful enough and especially I did not care enough > about performance of that program. On my slow machine the tip > of kernel before you came back takes 9.2 seconds wallclock as > opposed to 8.7 seconds to tar up, so the patch degrades the > performance by about 5%. Maybe we would want to revert that one > as well.
Probably a better solution is to move the tree parser from tree-diff.c into tree.c, provide a clear API in tree.h, and use that in tar-tree. There's definitely no need to have another parser beyond the one currently in tree-diff and the struct tree one.
I think I should be able to change the struct tree API slightly to make it an iterator instead of a linked list, and get the efficiency benefits of the tree-diff parser while still having a nice API.
-Daniel *This .sig left intentionally blank*