Overview
In general all SVN repository access protocols are supported. The nature of the
support can vary depending on the adapter you have chosen in your preferences.
This document will attempt to outline those issues.
file:// (ra_local)
The file:// protocol is only supported by the JavaHL adapter. If you are using the
SVNKit adapter, it is recommended that you setup and run a local svnserve instance
so that you may use the svn:// protocol.
svn:// (ra_svn)
The svn:// protocol is fully supported by both adapters. There are no issues or
considerations to take into account.
svn+ssh:// (ra_svn)
The svn+ssh:// protocol is fully supported by both adapters. However there are
significant differences in the implementation that should be taken into account.
- JavaHL
-
JavaHL uses the SVN libraries, consequently it is configured using the same techniques
as the SVN command line. SSH is handled via an external client which has to be manually
configured in the
Runtime Configuration Area. Any support for prompting for a client
certificate or passphrase is entirely dependent on the SSH client used. Consequently,
using JavaHL in this scenario is best suited for those users that already have an SSH
client configured and are using some form of SSH keyagent to manage connections.
- SVNKit
-
SVNKit implements SSH connections using the Ganymed Java SSH library. The Ganymed
library only support the SSH-2 protocol and client certificates must be in
the OpenSSH format. A major advantage to using SVNKit is that it
will dynamically prompt you for all SSH connection information as shown here:
http(s):// (ra_dav)
The http(s):// protocol is fully supported by both adapters. However there are
subtle differences in the implementation that should be taken into account, primarily
when dealing with SSL (https://) connections.
- JavaHL
-
JavaHL uses the SVN libraries for repository access, which means that it uses Neon and
the OpenSSL library for accessing SSL-secured connections. Generally, this offers
very good compatability with various HTTP servers, SSL certificates and implementations.
JavaHL supports prompting the user to accept the server certificate, but it does not support
prompting the user to provide a client certificate. Configuration of SSL certificates as well
as HTTP proxy information can be performed in the Runtime Configuration
Area.
- SVNKit
-
SVNKit implements http(s):// connections using the classes and methods that are part of
J2SE. Some JDK versions don't support SSL server certificates longer than 1024 bytes or
don't support certain Cypher Suites. If you're experiencing problems accessing a SVN
repository over SSL connection (via https protocol) consider using the latest JDK version
and upgrading the JDK JCE package (Cryptotgraphic Extension) to an "unlimited strenght" one.
Read this article for more details
on how to install JCE. Configuration of SSL certificates as well
as HTTP proxy information can be performed in the Runtime Configuration
Area. One notable benefit that SVNKit offers over JavaHL is that it supports prompting
the user for SSL client certificates.
In order to activate this feature you have to edit the "servers" file in the Runtime Configuration
Area and add the following:
[global]
ssl-client-cert-prompt = yes