svnserve(8)

πŸ’– svnserve(8) πŸ’–

okay bestie, this is the manual page for svnserve, and yes it lives in the System Manager's Manual section 8, we love a system-admin girlie πŸ’…


✨ NAME ✨

svnserve β€” the Server for the 'svn' repository access method 🫢


🌸 SYNOPSIS 🌸

svnserve [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

So like, svnserve is the whole reason you can reach your Subversion repositories over the svn network protocol. iconic behaviour, honestly.

She can run as a standalone server process, or she can run out of inetd. you literally must choose a mode of operation when you start svnserve, no vibes-based ambiguity here, bestie.

Here's every option she recognizes, and yes we're going through all of them because nobody gets left behind πŸŽ€

  • -d, --daemon β€” makes svnserve run in daemon mode. she backgrounds herself and accepts and serves TCP/IP connections on the svn port (3690, by default). main character energy, no notes ✨
  • *--listen-port=port* β€” makes svnserve listen on port when she's running in daemon mode. pick your port, queen.
  • --listen-host=host β€” makes svnserve listen on the interface specified by host, which can be either a **hostname or an IP address. flexible fr fr πŸ’œ
  • --foreground β€” when you use this together with -d, it makes svnserve stay in the foreground. this one is mainly useful for debugging. she's not hiding anymore, she's right there in your terminal 🫢
  • -i, --inetd β€” makes svnserve use the stdin/stdout file descriptors, as is appropriate for a daemon running out of inetd.
  • -h, --help β€” displays a usage summary and exits. the "just tell me what to do" option, we've all been there 😭
  • --version β€” prints svnserve's version and the repository filesystem back-end(s) that this particular svnserve supports.
  • -r root, --root=root β€” sets the **virtual root for repositories served by svnserve. the pathname in URLs that the client provides gets interpreted relative to this root, and it will not be allowed to escape this root. no escaping, the boundary is real 🚧
  • -R --read-only β€” forces all write operations through this svnserve instance to be forbidden, overriding all other access policy configuration.
⚠️ bestie, listen: do not use this option to set your general repository access policy β€” that is what the conf/svnserve.conf repository configuration file is for. this option should be used only to restrict access via a certain method of invoking svnserve. like, for example, to allow write access via SSH but not via a svnserve daemon, or to create a restricted SSH key that is only capable of read access. context matters, periodt πŸ’…
  • -t, --tunnel β€” makes svnserve run in tunnel mode, which is just like the inetd mode of operation (serve one connection over stdin/stdout) except that the connection is considered to be pre-authenticated with the username of the current uid. this flag gets selected by the client when running over a tunnel agent. she's already been introduced, no need for a formal greeting πŸ”₯
  • --tunnel-user=username β€” when combined with --tunnel, this *overrides the pre-authenticated username with the supplied *username. super useful in combination with the ssh authorized_key file's "command" directive, so a single system account can be used by multiple committers, each one having a distinct ssh identity. shared account, separate identities, we love to see it 🌈
  • -T, --threads β€” when running in daemon mode, this makes svnserve spawn a thread instead of a process for each connection. and yes, the svnserve process still backgrounds itself at startup time. threads not processes, she's efficient πŸ’…
  • --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. also: svnserve will not read any per-repository conf/svnserve.conf files when this option is used. see the svnserve.conf(5) man page for the deets on the file format for this option πŸŽ€
  • --pid-file=filename β€” when specified, svnserve will write its *process ID to *filename. so you can find her later πŸ₯°
  • -X, --listen-once β€” makes svnserve accept one connection on the svn port, serve it, and exit. this option is mainly useful for debugging. one and done, a true one-connection wonder ✨

πŸ’œ the config file situation πŸ’œ

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 figure out repository-specific settings β€” like what authentication database to use and what authorization policies to apply.

see the svnserve.conf(5) man page for all the details on that file format, bestie 🫢


πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page, gorgeous πŸ’– this was the svnserve(8) manual out of the System Manager's Manual, and yeah, that's the version and date situation too β€” go read your local copy if you need the exact stamp, it's giving very "check the source" of it all 😌✨

πŸ“¦ where this page comes from