There are four common protocols for network access of SVN.
svn://repos svn+ssh://repos https://repos http://repos
The Wikipedia page doesn't say much about the differences of the four different protocols. I've always preferred svn://
, because it is the easiest to set up, but what is the difference and which one is "better"?
svn+ssh is the svn protocol run inside a SSH tunnel. The client uses SSH to log on the remote server and remotely runs the svn command in that tunnel.
svnserve backgrounds itself and accepts and serves TCP/IP connections on the svn port (3690, by default).
Subversion is used for maintaining current and historical versions of projects. Subversion is an open source centralized version control system. It's licensed under Apache. It's also referred to as a software version and revisioning control system.
As illustrated throughout this book, Subversion uses URLs to identify versioned resources in Subversion repositories. For the most part, these URLs use the standard syntax, allowing for server names and port numbers to be specified as part of the URL: $ svn checkout http://svn.example.com:9834/repos …
http://
has a serious overhead, especially when dealing with thousands of small files. I used svn for a website that had around 50,000 icons, all saved in SVN. With HTTP, it took around 20 minutes to checkout. Once I switched to svn://
, it took less than a minute. This is because with HTTP it's one new HTTP request per file.
http://
however has the following big advantage: it usually goes through firewalls. For example, now that I switched to svn://
I can no longer access my repository from my university because of their firewall.
Regarding the difference between using SSL/TLS or not, well, it's obvious: data is encrypted; however it's more difficult to set up.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With