Name

mod_dav_svn Configuration Directives — Apache configuration directives for serving Subversion repositories through the Apache HTTP Server.

Description

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”.)

Directives

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.

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.

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.

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.

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.

SVNIndexXSLT directory-path

Specifies the URI of an XSL transformation for directory indexes. This directive is optional.

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.

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.

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).

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>

High-level logging

This is a list of Subversion action log messages produced by Apache's high-level logging mechanism, followed by an example of the log message. See the section called “Apache logging” for details on logging.

Checkout or export

checkout-or-export /path r62 depth=infinity

Commit

commit harry r100

Diffs

diff /path r15:20 depth=infinity ignore-ancestry

diff /path1@15 /path2@20 depth=infinity ignore-ancestry

Fetch a directory

get-dir /trunk r17 text

Fetch a file

get-file /path r20 props

Fetch a file revision

get-file-revs /path r12:15 include-merged-revisions

Fetch merge information

get-mergeinfo (/path1 /path2)

Lock

lock /path steal

Log

log (/path1,/path2,/path3) r20:90 discover-changed-paths revprops=()

Replay revisions (svnsync)

replay /path r19

Revision property change

change-rev-prop r50 propertyname

Revision property list

rev-proplist r34

Status

status /path r62 depth=infinity

Switch

switch /pathA /pathB@50 depth=infinity

Unlock

unlock /path break

Update

update /path r17 send-copyfrom-args