On Tue, Feb 9, 2010 at 7:09 PM, Julian Foad <julian.foad_at_wandisco.com> wrote:
> On Mon, 2010-02-08, Phillip Hellewell wrote:
>> I'm not sure if this is related to issue 1448 or not (it's kinda like the
>> opposite of 1448 actually), but I use externals extensively and doing an
>> update is slow. It appears to be creating a new connection for each
>> external even though it's the same repository on the same server. Each
>> connection takes about 3 seconds to make.
>>
>> I have a large project (over 10,000 files) that takes about 10 seconds to do
>> an update (with no externals). Then I have a sibling folder that acts as a
>> "module" to provide a limited view of the project by using relative
>> externals to about a dozen subdirs of the project. This "module" folder
>> takes 40 seconds to do an update. So it takes longer to update this
>> "module" folder even though it only contains a subset of the project! Even
>> individual file externals take 3 seconds each to update.
>>
>> Since all the externals are relative, they are to the same repository on the
>> same server, so can't we re-use existing connection?
>
> Yes, that would be a good enhancement.
>
> There are several places where the client should/could re-use a
> connection. During a multi-target update command like "svn up a b c" is
> another example.
>
> Would you, or anyone you know, be interested in working on it? I would
> be glad to give you some help and guidance.
>
Agreed. svn_client_* functions spend a lot time on creating RA
connection. My idea was to introduce "connection pool" to hold and
reuse RA connections. This pool can be stored in svn_client_ctx_t or
in separate object.
--
Ivan Zhakov
VisualSVN Team
Received on 2010-02-09 18:44:25 CET