Svnserve VS mod_dav_svn

2019-03-27 21:11发布

问题:

We plan to install a Subversion repository in an environment where the network is quite slow on its own. The previous VCS used there was VSS, and it was a nightmare to use it (not only because of its "feature").

So, my question is the choice between Svnserve and the apache module. I know that the apache module will be slower due to the stateless protocol, but I've no idea how much is the increase of the time it implies.
Is there somewhere some benchmarks or rules that indicate the average difference of speed between the two servers?

回答1:

Taken from this resource,

In most cases, if the version control system Subversion's performance is discussed, the topics revolve around the repository backends used (Berkeley DB (bdb) vs. FSFS) and tuning some server software or even hardware parameters.

It seems to be less known that the choice of the server variant used - the Apache Subversion mod_dav_svn module or the standalone svnserve server - have a great impact to measured and perceived subversion performance. Usually svnserve is significantly faster than Apache mod_dav_svn

In a synthetic, non-representative benchmark test I performed using Subversion 1.4.5, Subversion 1.1.1 and Apache 2.0, mod_dav_svn's performance was 30% to 400% slower than svnserve's. svnserve's performance was close to local direct accesses to the repository using the svn command line tools.

The most significant performance penalty was measured during svn log and svn merge operations against the mod_dav_svn server - you'll notice worse svn log performance immediately if eg. using the Eclipse Subversion plugin Subclipse.

The author also provides a benchmark comparing the two.

I run snvserv that serves about 50 repositories on Berkely DB backends and have had no complaints on the performance. As a side note there are only 10 users, though.

I actually found svnserve very easy to install and maintain and doesn't penalise you in lack of futures. SSH can be enabled for svnserve and path based security is also possible if you're the '"one repository, many projects" kind of guy' Steve Robbins talks about :)



回答2:

From my own benchmarking I found virtually no difference between the DAV, SVN and FILE when doing operations on a repo around the 500meg mark. The main advantage with the DAV model is the more granular security you get, especially if you are a "one repo, many projects" kind of guy,



回答3:

You might be interested in knowing that the 1.7 release of SVN will feature a faster HTTP protocol. The new mod_dav_svn module will support both the old and the new HTTP protocol.

I'd go with HTTP and upgrade to SVN 1.7 to fix the performance penalty later. It's a bit more work, but it has the advantage that you can use any of the Apache authentication modules. This is great to avoid introducing yet another user password. For example, you can integrate with your windows domain controller.