On Thu, Jun 17, 2010 at 16:48, Stefan Küng <tortoise...@gmail.com> wrote: > On 17.06.2010 22:35, Bert Huijben wrote: >>> Sure, I said before I can get any information myself, but only with >>> a severe performance hit. Because every time I call an svn_client_* >>> API, it walks the whole tree again, opens the files again, opens >>> the db again and again, ... >> >> svn_client doesn't open the db again. (The handle is cached in the >> svn_client_ctx_t's wc_ctx field) and if you set a proper depth value >> on your call it doesn't traverse any other nodes then the one you >> specify. > > But I need that information for all entries in the tree. So I have to > traverse the whole tree again. > Tree walks are expensive.
That is totally ridiculous. No. You do NOT have to walk the tree again. The idea is: the status callback is invoked with the *limited* status information. If you want more, then from *within* that callback, make a function call back into the API to get the information you need. Look at that! No additional tree walks! > I don't have a problem calling another API to get additional info where i > need it only for one or just a few items. But most of the time, I need that > information for the whole tree. Great. And if you were *listening*, Bert has said we'll do that at the client level. And even if we don't, then *you* can have a simple callback handler that grabs the extra information. This is not rocket science. And as Mike pointed out: we'd not going to screw you over. So stop your whining, make the extra calls in your callback, and let's move on. Offer some suggestions for improvements, rather than "wah wah, I don't like it". Simple fact is: we're going for *fast*. If you want something less fast, then you can do that on your own side of the callbacks. All the information is there, and a call into the APIs is no more expensive than what our old code used to do. When it gets down to it, the SAME function is used to do the "is modified?" check. So what the hell are you complaining about, if you have to make the call instead of the svn library? Not to mention, Bert saying that libsvn_client will do all that for you, anyways, in a consistent fashion. Stop the noise. Move along. -g