svnserve
TLDR
Start as daemon serving repositories
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.


