On Thu, Jun 17, 2010 at 16:48, Stefan Küng <tortoisesvn_at_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
Received on 2010-06-18 06:47:34 CEST