svnserve
Prev | Chapter 9. Subversion Complete Reference | Next

## svnserve

svnserve allows access to Subversion repositories using Subversion's custom network protocol.

You can run svnserve as a standalone server process (for clients that are using the `svn://` access method); you can have a daemon such as inetd or xinetd launch it for you on demand (also for `svn://`), or you can have sshd launch it on demand for the `svn+ssh://` access method.

Regardless of the access method, once the client has selected a repository by transmitting its URL, svnserve reads a file named `conf/svnserve.conf` in the repository directory to determine repository-specific settings such as what authentication database to use and what authorization policies to apply. See the section called “svnserve, a Custom Server” for details of the `svnserve.conf` file.

### svnserve Options

Unlike the previous commands we've described, svnserve has no subcommands—it is controlled exclusively by options.

`--daemon` (`-d`)

  Causes svnserve to run in daemon mode. svnserve backgrounds itself and accepts and serves TCP/IP connections on the `svn` port (3690, by default).

`--foreground`

  When used together with `-d`, causes svnserve to stay in the foreground. This is mainly useful for debugging.

`--inetd` (`-i`)

  Causes svnserve to use the `stdin` and `stdout` file descriptors, as is appropriate for a daemon running out of inetd.

`--help` (`-h`)

  Displays a usage summary and exits.

`--listen-host`=`HOST`

  Causes svnserve to listen on the interface specified by `HOST`, which may be either a hostname or an IP address.

`--listen-once` (`-X`)

  Causes svnserve to accept one connection on the `svn` port, serve it, and exit. This option is mainly useful for debugging.

`--listen-port`=`PORT`

  Causes svnserve to listen on `PORT` when run in daemon mode. (FreeBSD daemons listen only on tcp6 by default—this option tells them to also listen on tcp4.)

`--pid-file `FILENAME``

  Causes svnserve to write its process ID to `FILENAME`, which must be writable by the user under which svnserve is running.

`--root`=`ROOT` (`-r`=`ROOT`)

  Sets the virtual root for repositories served by svnserve. The pathname in URLs provided by the client will be interpreted relative to this root and will not be allowed to escape this root.

`--threads` (`-T`)

  When running in daemon mode, causes svnserve to spawn a thread instead of a process for each connection (e.g., for when running on Windows). The svnserve process still backgrounds itself at startup time.

`--tunnel` (`-t`)

  Causes svnserve to run in tunnel mode, which is just like the inetd mode of operation (both modes serve one connection over `stdin`/`stdout`, and then exit), except that the connection is considered to be preauthenticated with the username of the current UID. This flag is automatically passed for you by the client when running over a tunnel agent such as ssh. That means there's rarely any need for you to pass this option to svnserve. So, if you find yourself typing `svnserve --tunnel` on the command line and wondering what to do next, see the section called “Tunneling over SSH”.

`--tunnel-user NAME`

  Used in conjunction with the `--tunnel` option, tells svnserve to assume that `NAME` is the authenticated user, rather than the UID of the svnserve process. This is useful for users wishing to share a single system account over SSH, but to maintain separate commit identities.

`--version`

  Displays version information and a list of repository backend modules available, and then exits.

Prev | Up | Next
svnsync synchronize | Home | svndumpfilter