This documentation was written to describe the 1.7.x series of Apache™ Subversion®. If you are running a different version of Subversion, you are strongly encouraged to visit http://www.svnbook.com/ and instead consult the version of this documentation appropriate for your version of Subversion.
mod_dav_svn Configuration Directives — Apache configuration directives for serving Subversion repositories through the Apache HTTP Server.
This section briefly describes each Subversion Apache configuration directive. For an in-depth description of configuring Apache with Subversion, see the section called “httpd, the Apache HTTP Server”.
These are the httpd.conf
directives that apply to mod_dav_svn:
DAV svn
Must be included in any Directory
or Location
block for a Subversion repository. It tells httpd to use the Subversion backend for mod_dav
to handle all requests.
SVNActivitiesDB directory-path
Specifies the location in the filesystem where the activities database should be stored. By default, mod_dav_svn creates and uses a directory in the repository called dav/activities.d
. The path specified with this option must be an absolute path.
If specified for an SVNParentPath
area, mod_dav_svn appends the basename of the repository to the path specified here. For example:
<Location /svn> DAV svn # any "/svn/foo" URL will map to a repository in # /net/svn.nfs/repositories/foo SVNParentPath "/net/svn.nfs/repositories" # any "/svn/foo" URL will map to an activities db in # /var/db/svn/activities/foo SVNActivitiesDB "/var/db/svn/activities" </Location>
SVNAdvertiseV2Protocol On|Off
New to Subversion 1.7, this toggles whether mod_dav_svn advertises its support for the new version of its HTTP protocol also introduced in that version. Most admins will not wish to use this directive (which is On
by default), choosing instead to enjoy the performance benefits that the new protocol offers. However, whena configuring a server as a write-through proxy to another server which does not support the new protocol, set this directive's value to Off
.
SVNAllowBulkUpdates On|Off
Toggles support for all-inclusive responses to update-style REPORT
requests. Subversion clients use REPORT
requests to get information about directory tree checkouts and updates from mod_dav_svn. They can ask the server to send that information in one of two ways: with the entirety of the tree's information in one massive response, or with a skelta (a skeletal representation of a tree delta) which contains just enough information for the client to know what additional data to request from the server. When this directive is included with a value of Off
, mod_dav_svn will only ever respond to these REPORT
requests with skelta responses, regardless of the type of responses requested by the client.
Most folks won't need to use this directive at all. It primarily exists for administrators who wish—for security or auditing reasons—to force Subversion clients to fetch individually all the files and directories needed for updates and checkouts, thus leaving an audit trail of GET
and PROPFIND
requests in Apache's logs. The default value of this directive is On
.
SVNAutoversioning On|Off
When its value is On
, allows write requests from WebDAV clients to result in automatic commits. A generic log message is auto-generated and attached to each revision. If you enable autoversioning, you'll likely want to set ModMimeUsePathInfo On
so that mod_mime
can set svn:mime-type
to the correct MIME type automatically (as best as mod_mime
is able to, of course). For more information, see Appendix C, WebDAV and Autoversioning. The default value of this directive is Off
.
SVNCacheFullTexts On|Off
When set to On
, this tells Subversion to cache content fulltexts if sufficient in-memory cache is available, which could offer a significant performance benefit to the server. (See also the SVNInMemoryCacheSize
directive.) The default value of this directive is Off
.
SVNCacheTextDeltas On|Off
When set to On
, this tells Subversion to cache content deltas if sufficient in-memory cache is available, which could offer a significant performance benefit to the server. (See also the SVNInMemoryCacheSize
directive.) The default value of this directive is Off
.
SVNCompressionLevel level
Specifies the compression level used when sending file content over the network. A value of 0
disables compression altogether, and 9
is the maximum value. 5
is the default value.
SVNIndexXSLT directory-path
Specifies the URI of an XSL transformation for directory indexes. This directive is optional.
SVNInMemoryCacheSize size
Specifies the maximum size (in kbytes) per process of Subversion's in-memory object cache. The default value is 16384
; use a value of 0
to deactivate this cache altogether.
SVNListParentPath On|Off
When set to On
, allows a GET
of SVNParentPath
, which results in a listing of all repositories under that path. The default setting is Off
.
SVNMasterURI url
Specifies a URI to the master Subversion repository (used for a write-through proxy).
SVNParentPath directory-path
Specifies the location in the filesystem of a parent directory whose child directories are Subversion repositories. In a configuration block for a Subversion repository, either this directive or SVNPath
must be present, but not both.
SVNPath directory-path
Specifies the location in the filesystem for a Subversion repository's files. In a configuration block for a Subversion repository, either this directive or SVNParentPath
must be present, but not both.
SVNPathAuthz On|Off|short_circuit
Controls path-based authorization by enabling subrequests (On
), disabling subrequests (Off
; see the section called “Disabling path-based checks”), or querying mod_authz_svn directly (short_circuit
). The default value of this directive is On
.
SVNReposName name
Specifies the name of a Subversion repository for use in HTTP GET
responses. This value will be prepended to the title of all directory listings (which are served when you navigate to a Subversion repository with a web browser). This directive is optional.
SVNSpecialURI component
Specifies the URI component (namespace) for special Subversion resources. The default is !svn
, and most administrators will never use this directive. Set this only if there is a pressing need to have a file named !svn
in your repository. If you change this on a server already in use, it will break all of the outstanding working copies, and your users will hunt you down with pitchforks and flaming torches.