This section is from the "Version Control with Subversion" book, by Ben Collins-Sussman, Brian W. Fitzpatrick and C. Michael Pilato. Also available from Amazon: Version Control with Subversion.
The servers
file contains
Subversion configuration options related to the network
layers. There are two special section names in this
file—groups
and
global
. The groups
section is essentially a cross-reference table. The keys in
this section are the names of other sections in the file;
their values are globs—textual
tokens which possibly contain wildcard
characters—that are compared against the hostnames of
the machine to which Subversion requests are sent.
[groups] beanie-babies = *.red-bean.com collabnet = svn.collab.net [beanie-babies] … [collabnet] …
When Subversion is used over a network, it attempts to
match the name of the server it is trying to reach with a
group name under the groups
section. If
a match is made, Subversion then looks for a section in the
servers
file whose name is the matched
group's name. From that section it reads the actual network
configuration settings.
The global
section contains the
settings that are meant for all of the servers not matched
by one of the globs under the groups
section. The options available in this section are
exactly the same as those valid for the other server
sections in the file (except, of course, the special
groups
section), and are as
follows:
http-proxy-exceptions
This specifies a comma-separated list of patterns for repository hostnames that should accessed directly, without using the proxy machine. The pattern syntax is the same as is used in the Unix shell for filenames. A repository hostname matching any of these patterns will not be proxied.
http-proxy-host
This specifies the hostname of the proxy computer through which your HTTP-based Subversion requests must pass. It defaults to an empty value, which means that Subversion will not attempt to route HTTP requests through a proxy computer, and will instead attempt to contact the destination machine directly.
http-proxy-port
This specifies the port number on the proxy host to use. It defaults to an empty value.
http-proxy-username
This specifies the username to supply to the proxy machine. It defaults to an empty value.
http-proxy-password
This specifies the password to supply to the proxy machine. It defaults to an empty value.
http-timeout
This specifies the amount of time, in seconds, to
wait for a server response. If you experience
problems with a slow network connection causing
Subversion operations to time out, you should increase
the value of this option. The default value is
0
, which instructs the underlying
HTTP library, Neon, to use its default timeout
setting.
http-compression
This specifies whether or not Subversion should
attempt to compress network requests made to DAV-ready
servers. The default value is yes
(though compression will only occur if that capability
is compiled into the network layer). Set this to
no
to disable compression, such as
when debugging network transmissions.
http-library
Subversion provides a pair of repository access
modules which understand its WebDAV network protocol.
The original one which shipped with Subversion 1.0 is
libsvn_ra_neon
(though back then it
was called libsvn_ra_dav
). Newer
Subversion versions also provide
libsvn_ra_serf
, which uses a
different underlying implementation and aims to
support some of the newer HTTP concepts.
At this point, libsvn_ra_serf
is still considered experimental, though it appears to
work in the common cases quite well. To encourage
experimentation, Subversion provides the
http-library
runtime configuration
option to allow users to specify (generally, or in a
per-server-group fashion) which WebDAV access module
they'd prefer to use—neon
or
serf
.
http-auth-types
This option is a semicolon-delimited list of
authentication types supported by the Neon-based
WebDAV repository access modules. Valid members of
this list are basic
,
digest
, and
negotiate
.
neon-debug-mask
This is an integer mask that the underlying HTTP
library, Neon, uses for choosing what type of
debugging output to yield. The default value is
0
, which will silence all debugging
output. For more information about how Subversion
makes use of Neon, see Chapter 8, Embedding Subversion.
ssl-authority-files
This is a semicolon-delimited list of paths to files containing certificates of the certificate authorities (or CAs) that are accepted by the Subversion client when accessing the repository over HTTPS.
ssl-trust-default-ca
Set this variable to yes
if you
want Subversion to automatically trust the set of
default CAs that ship with OpenSSL.
ssl-client-cert-file
If a host (or set of hosts) requires an SSL client certificate, you'll normally be prompted for a path to your certificate. By setting this variable to that same path, Subversion will be able to find your client certificate automatically without prompting you. There's no standard place to store your certificate on disk; Subversion will grab it from any path you specify.
ssl-client-cert-password
If your SSL client certificate file is encrypted
by a passphrase, Subversion will prompt you for the
passphrase whenever the certificate is used. If you
find this annoying (and don't mind storing the
password in the servers
file),
then you can set this variable to the certificate's
passphrase. You won't be prompted anymore.