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.
Regardless of the access method, 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.
--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, prever 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.