LinuxCommandLibrary

svnserve

TLDR

Start as daemon serving repositories

$ svnserve -d -r [/path/to/repos]
copy
Start in foreground for debugging
$ svnserve -d --foreground -r [/path/to/repos]
copy
Listen on specific port
$ svnserve -d -r [/path/to/repos] --listen-port [3690]
copy
Listen on specific interface
$ svnserve -d -r [/path/to/repos] --listen-host [192.168.1.1]
copy
Run in inetd mode
$ svnserve -i
copy
Run in tunnel mode for SSH
$ svnserve -t
copy
Use custom configuration file
$ svnserve -d -r [/path/to/repos] --config-file [/etc/svnserve.conf]
copy

SYNOPSIS

svnserve [options]

DESCRIPTION

svnserve is a lightweight server for Subversion repositories using Subversion's custom network protocol. It provides access to repositories via the svn:// and svn+ssh:// URL schemes.
The server supports multiple operating modes: as a standalone daemon listening on TCP port 3690, as an inetd/xinetd service, or as a tunnel process spawned by SSH. The tunnel mode allows secure access without exposing the svn port.
The -r option sets a virtual root, restricting client access to repositories under that path and simplifying URLs. Authentication can be configured per-repository or globally using a shared configuration file.
For high-traffic environments, svnserve supports thread pools instead of fork-per-connection.

PARAMETERS

-d, --daemon

Run as daemon, accepting TCP connections on svn port (3690).
-i, --inetd
Run in inetd mode using stdin/stdout.
-t, --tunnel
Run in tunnel mode for SSH access, pre-authenticated.
-X, --listen-once
Accept one connection, serve it, and exit.
-r, --root path
Set virtual root for served repositories.
--listen-port port
Listen on specified port (default 3690).
--listen-host host
Listen on specified interface or hostname.
--foreground
Stay in foreground (with -d), for debugging.
--tunnel-user name
Override authenticated username in tunnel mode.
--config-file file
Use specified configuration file.
--pid-file file
Write process ID to file.
--log-file file
Write logs to specified file.
--threads
Use threads instead of forking.
--min-threads n
Minimum number of threads in pool.
--max-threads n
Maximum number of threads in pool.
-h, --help
Display usage information.
--version
Display version information.

CAVEATS

Uses plain text authentication by default unless tunneled through SSH or configured for SASL. No built-in SSL support; use SSH tunneling or svn+ssh:// for encryption. Access control is less granular than Apache-based serving. Firewall must allow port 3690 for daemon mode.

HISTORY

svnserve was included in Subversion from early versions as a lightweight alternative to Apache-based repository serving. It provides faster setup and lower overhead for smaller deployments. The svn:// protocol was designed for simplicity while svn+ssh:// leverages SSH for authentication and encryption.

SEE ALSO

svnadmin(1), svn(1), xinetd(8), sshd(8)

Copied to clipboard