This section is from the "Version Control with Subversion" book, by Ben Collins-Sussman, Brian W. Fitzpatrick and C. Michael Pilato. Also available from Amazon: Version Control with Subversion.
The easiest option is to run svnserve
as a standalone “daemon” process. Use the
-d
option for this:
$ svnserve -d $ # svnserve is now running, listening on port 3690
When running svnserve in daemon mode,
you can use the --listen-port=
and
--listen-host=
options to customize the
exact port and hostname to “bind” to.
Once we successfully start svnserve as
above, it makes every repository on your system available to
the network. A client needs to specify an
absolute path in the repository URL. For
example, if a repository is located at
/var/svn/project1
, then a client would
reach it via
svn://host.example.com/var/svn/project1
. To
increase security, you can pass the -r
option
to svnserve, which restricts it to
exporting only repositories below that path. For
example:
$ svnserve -d -r /var/svn …
Using the -r
option effectively
modifies the location that the program treats as the root of
the remote filesystem space. Clients then use URLs that
have that path portion removed from them, leaving much
shorter (and much less revealing) URLs:
$ svn checkout svn://host.example.com/project1 …