This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
svnserve — Serve Subversion repositories via Subversion's custom network protocol
svnserve [-d | -i | -t | -X] OPTIONS...
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.
Unless the --config-file
option was specified on
the command line, 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.
Unlike the previous commands we've described, svnserve has no subcommands—it is controlled exclusively by options.
--cache-fulltexts
ARG
Toggles support for fulltext file content caching (in FSFS repositories only).
--cache-txdeltas
ARG
Toggles support for file content delta caching (in FSFS repositories only).
--compression
LEVEL
Specifies the level of compression used for wire
transmissions as an integer beween 0 and 9, inclusive.
A value of 9
offers the best
compression, 5
is the default value,
and 0
disables compression
altogether.
--config-file
FILENAME
When specified, svnserve reads
FILENAME
once at program startup and
caches the svnserve configuration. The
password and authorization configurations referenced from filename
will be loaded on each connection. svnserve
will not read any per‐repository
conf/svnserve.conf
files when this option is
used. See the the section called “svnserve, a Custom Server” for
details of the file format for this option.
--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.)
--log-file
FILENAME
Instructs svnserve to create (if
necessary) and use the file located
at FILENAME
for Subversion
operational log output of the same sort
that mod_dav_svn generates. See
the section called “High-level Logging”
for details.
--memory-cache-size
(-M
) ARG
Configures the size (in Megabytes) of the extra
in-memory cache used to minimize redundant operations.
The default value is 16
. (This cache
is used for FSFS-backed repositories only.)
--pid-file
FILENAME
Causes svnserve to write its
process ID to FILENAME
, which
must be writable by the user under
which svnserve is running.
--prefer-ipv6
(-6
)
When resolving the listen hostname, prefer an IPv6 answer over an IPv4 one. IPv4 is preferred by default.
--quiet
Disables progress notifications. Error output will still be printed.
--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.