Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which subversion server type is best?

Tags:

linux

svn

Subversion has multiple server types:

  • svnserve daemon
  • svnserve via xinetd
  • svn over ssh
  • http-based server
  • direct access via file:/// URLs

Which one of these is best for a small Linux system (one to two users)?

like image 496
PiedPiper Avatar asked Apr 17 '09 23:04

PiedPiper


4 Answers

http:

  • very flexible and easy for administration
  • no network problems (Port 80)
  • 3rd party authentication (eg. LDAP, Active Directory)
  • Unix + Win native support
  • webdav support for editing without svn client
  • slow, as each action triggers a new http-action approx. 5-8 times slower than svn://
  • especially slow on history
  • no encryption of transferred data

https:

  • same as http
  • encryption of transferred data

svn:

  • fastest transfer
  • no password encryption in std. setup: pw are readable by admin
  • firewall problems as no std.port is used
  • daemon service has to be started
  • no encryption of transferred data

svn+ssh

  • nearly as fast as svn://
  • no windows OS comes with build in ssh components, so 3rd party tools are essentiell
  • no daemon service needed
  • encryption of passwords
  • encryption of transfer
like image 93
Peter Parker Avatar answered Oct 21 '22 04:10

Peter Parker


1 of those options is definitely a 'worst' one: file access. Don't use it, use one of the server-based methods instead.

However, whether to use HTTP or Svnserve is entirely a matter of preference. In fact, you can use both simultaneously, the write-lock on the repo ensures that you won't corrupt anything if you use one and then use another.

My preference is simply to use apache though - http is more firewall and internet friendly, it is also easier to hook into ldap or other authentication mechanisms, and you get features like webdav too. The performance may be less than svnserve, but its not particularly noticeable (the transferring of data across the network makes up the bulk of any performance issues)

If you need security for file transfers, then svnserve+ssh, or apache over https is your choice.

like image 29
gbjbaanb Avatar answered Oct 21 '22 06:10

gbjbaanb


Check out FLOSS Weekly Episode 28. Greg Stein is one of the inventors of the WebDAV protocol for SVN and discusses the tradeoffs. My takeaway is that SVN: is faster but the http/webdav implementation is just fine for almost all purposes.

like image 39
Steve Rowe Avatar answered Oct 21 '22 06:10

Steve Rowe


I've always used XInetD and HTTP. HTTP also had WebDAV going on, so I could browse the source online if I wanted (or you can require a VPN if you wanted encryption and a dark-net type thing).

It really depends on what restrictions (if any) you're under.

Is it only going to be on a LAN? Will you need access outside of your LAN? If so, will you have a VPN? Do you have a static IP address and are you allowed to forward ports?

If you aren't under any restriction, I would then suggest going with xinetd (if you have xientd installed, daemon if you don't) and then (if you need remote access) use http-based server if you need remote access (you can also encrypt using HTTPS if you don't want plain text un/pw sent across).

Most other options are more effort with less benefit.

It's an SVN Repo -- you can always pack your bags and change things if you don't like it.

like image 26
Kenny Mann Avatar answered Oct 21 '22 06:10

Kenny Mann