RE: Re-use connection for svn:externals
From: Bert Huijben <bert_at_qqmail.nl>
Date: Wed, 10 Feb 2010 11:07:39 +0100
> -----Original Message-----
This thread suggests using full urls everywhere. And the thread closes with the reasoning that this will cause all kinds of new security issues as we have to do the url encoding everywhere. (Encoding one time more than required or one time less than required introduces security bugs).
Always opening at the repository root and using repos_relpaths for further communication wouldn't have this issues, but has the potential of creating more issue #3242 like issues.
Looking at the rest of the thread:
The '3 seconds delay' is most likely caused by the slow opening of HTTP sessions which walk up the repository to find the repository root. This case is already fixed in HTTPv2. (svn:// is much faster than this. And svn+ssh:// depends on other things).
(a svn_ra_session_dup() could help the dav ra layers here too)
I'm not sure if keeping ra_sessions open for really long times in svn_client_ctx_t is a good idea in all cases as in some clients svn_client_ctx_t lives for days. (E.g. AnkhSVN does that in Visual Studio).
We would have to start checking for broken connections in svn*:// sessions +- everywhere. (http and https are stateless, so these wouldn't have these problems.. They would only fail if the repository is moved; or upgraded to another major subversion version).
As I don't think we can do a real test for these conditions in our testsuite, keeping the sessions open will move the issue identification to the other subversion clients, which have to wait at least weeks for us to incorporate a fix.
+1 on keeping them open below a single svn_client_updateX() operation though as we can test that in our testsuite without any issues.
This is an archived mail posted to the Subversion Dev mailing list.