The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
.\"
.\"
.\"     Licensed to the Apache Software Foundation (ASF) under one
.\"     or more contributor license agreements.  See the NOTICE file
.\"     distributed with this work for additional information
.\"     regarding copyright ownership.  The ASF licenses this file
.\"     to you under the Apache License, Version 2.0 (the
.\"     "License"); you may not use this file except in compliance
.\"     with the License.  You may obtain a copy of the License at
.\"    
.\"       http://www.apache.org/licenses/LICENSE-2.0
.\"    
.\"     Unless required by applicable law or agreed to in writing,
.\"     software distributed under the License is distributed on an
.\"     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
.\"     KIND, either express or implied.  See the License for the
.\"     specific language governing permissions and limitations
.\"     under the License.
.\"
.\"
.\" You can view this file with:
.\" nroff -man [filename]
.\"
.TH svnserve 8
.SH NAME
svnserve \- Server for the 'svn' repository access method
.SH SYNOPSIS
.TP
\fBsvnserve\fP [\fIoptions\fP]
.SH DESCRIPTION
\fBsvnserve\fP allows access to Subversion repositories using the svn
network protocol.  It can both run as a standalone server process, or
it can run out of inetd.  You must choose a mode of operation when you
start \fBsvnserve\fP.  The following options are recognized:
.PP
.TP 5
\fB\-d\fP, \fB\-\-daemon\fP
Causes \fBsvnserve\fP to run in daemon mode.  \fBsvnserve\fP
backgrounds itself and accepts and serves TCP/IP connections on the
svn port (3690, by default).
.PP
.TP 5
\fB\-\-listen\-port\fP=\fIport\fP
Causes \fBsvnserve\fP to listen on \fIport\fP when run in daemon mode.
.PP
.TP 5
\fB\-\-listen\-host\fP=\fIhost\fP
Causes \fBsvnserve\fP to listen on the interface specified by \fIhost\fP,
which may be either a hostname or an IP address.
.PP
.TP 5
\fB\-\-foreground\fP
When used together with \fB\-d\fP, this option causes \fBsvnserve\fP
to stay in the foreground.  This option is mainly useful for
debugging.
.PP
.TP 5
\fB\-i\fP, \fB\-\-inetd\fP
Causes \fBsvnserve\fP to use the stdin/stdout file descriptors, as is
appropriate for a daemon running out of inetd.
.PP
.TP 5
\fB\-h\fP, \fB\-\-help\fP
Displays a usage summary and exits.
.PP
.TP 5
\fB\-\-version\fP
Print \fBsvnserve\fP's version and the repository filesystem
back-end(s) a particular \fBsvnserve\fP supports.
.PP
.TP 5
\fB\-r\fP \fIroot\fP, \fB\-\-root\fP=\fIroot\fP
Sets the virtual root for repositories served by \fBsvnserve\fP.  The
pathname in URLs provided by the client will be interpreted relative
to this root, and will not be allowed to escape this root.
.PP
.TP 5
\fB\-R\fP \fB\-\-read\-only\fP
Force all write operations through this \fBsvnserve\fP instance to be
forbidden, overriding all other access policy configuration.  Do not
use this option to set general repository access policy - that is what
the \fBconf/svnserve.conf\fP repository configuration file is for.
This option should be used only to restrict access via a certain
method of invoking \fBsvnserve\fP - for example, to allow write access
via SSH, but not via a \fBsvnserve\fP daemon, or to create a
restricted SSH key which is only capable of read access.
.PP
.TP 5
\fB\-t\fP, \fB\-\-tunnel\fP
Causes \fBsvnserve\fP to run in tunnel mode, which is just like the
inetd mode of operation (serve one connection over stdin/stdout)
except that the connection is considered to be pre-authenticated with
the username of the current uid.  This flag is selected by the client
when running over a tunnel agent.
.PP
.TP 5
\fB\-\-tunnel\-user\fP=\fIusername\fP
When combined with \fB\-\-tunnel\fP, overrides the pre-authenticated
username with the supplied \fIusername\fP.  This is useful in
combination with the ssh authorized_key file's "command" directive to
allow a single system account to be used by multiple committers, each
having a distinct ssh identity.
.PP
.TP 5
\fB\-T\fP, \fB\-\-threads\fP
When running in daemon mode, causes \fBsvnserve\fP to spawn a thread
instead of a process for each connection.  The \fBsvnserve\fP process
still backgrounds itself at startup time.
.PP
.TP 5
\fB\-\-config\-file\fP=\fIfilename\fP
When specified, \fBsvnserve\fP reads \fIfilename\fP once at program
startup and caches the \fBsvnserve\fP configuration and any passwords
and authorization configuration referenced from \fIfilename\fP.
\fBsvnserve\fP will not read any per-repository
\fBconf/svnserve.conf\fP files when this option is used.  See the
\fBsvnserve.conf\fP(5) man page for details of the file format for
this option.
.PP
.TP 5
\fB\-\-pid\-file\fP=\fIfilename\fP
When specified, \fBsvnserve\fP will write its process ID to
\fIfilename\fP.
.PP
.TP 5
\fB\-X\fP, \fB\-\-listen\-once\fP
Causes \fBsvnserve\fP to accept one connection on the svn port, serve
it, and exit.  This option is mainly useful for debugging.
.PP
Unless the \fB\-\-config\-file\fP option was specified on the command
line, once the client has selected a repository by transmitting its
URL, \fBsvnserve\fP reads a file named \fBconf/svnserve.conf\fP in the
repository directory to determine repository-specific settings such as
what authentication database to use and what authorization policies to
apply.  See the \fBsvnserve.conf\fP(5) man page for details of that
file format.
.SH SEE ALSO
.BR svnserve.conf (5)