svnserve.conf(5)

πŸ’– svnserve.conf β€” the bestie manual πŸ’–

okay so you found the svnserve.conf page, which lives in section 5 of the File Formats Manual β€” that's the "config files and file formats" shelf, not the "run this command" shelf, iykyk. Buckle up, this one's short but it's load-bearing. πŸŽ€


✨ NAME ✨

svnserve.conf β€” the repository configuration file for svnserve πŸ¦‹


🌸 SYNOPSIS 🌸

repository-path/conf/svnserve.conf

that's literally it, bestie β€” it's a file, not a command, so there's no flags to memorize. slay. πŸ’…


πŸŽ€ DESCRIPTION πŸŽ€

So. svnserve.conf is the file that controls how the svnserve daemon behaves β€” and it does it per-repository, meaning every repo gets to have its own opinions. It lives in the conf subdirectory of the repository. πŸ—‚οΈ

The overall structure is the same as Subversion's user configuration files. At the top level you've got sections, and a section is just a word sitting inside square brackets. Inside each section are variable definitions, which look exactly like variable = value. Any line that begins with # gets ignored entirely. (yes queen, comment your config, future you will thank you) πŸ’œ

svnserve.conf currently uses only one section, named general, and it supports the following variables:

  • anon-access = none|read|write β€” decides the access level for unauthenticated users (aka the randos, aka the anons πŸ™ˆ). write access lets them do all repository operations. read access lets them do all operations except committing and changing revision properties. none access lets them do absolutely nothing. The default level is read.
  • auth-access = none|read|write β€” decides the access level for authenticated users, using the same three access levels as above. The default level is write. ✨
  • password-db = filename β€” sets the location of the password database. The filename may be relative to the repository conf directory. There is no default value. The password database has the same overall format as this very file. It uses only one section, users; each variable inside that section is a username, and each value is a password. πŸ”
  • authz-db = path β€” this option controls the location of the authorization rules for path-based access control. The path may be relative to the repository conf directory. The path may also be a repository relative URL (^/) or an absolute file:// URL to a text file in a Subversion repository. There is no default value. If you don't specify an authz-db, then no path-based access control is done at all. 😭
  • realm = realm-name β€” sets the authentication realm of the repository. Here's the vibe: if two repositories share the same password database, they should have the same realm, and vice versa. That association is what lets clients use a single cached password across several repositories. The default realm value is the repository's uuid. 🧚

🌈 EXAMPLE 🌈

okay here's the moment you've been waiting for, the glow-up: the following example svnserve.conf allows read access for authenticated users, no access for anonymous users, points to a passwd database in the same directory, and defines a realm name. πŸ‘‘

[general]
anon-access = none
auth-access = read
password-db = passwd
realm = My First Repository

And the file passwd would look like: πŸ“

[users]
joeuser = joepassword
jayrandom = randomjay
no cap, those are the actual example usernames and passwords from the manpage β€” please do not ship joepassword to production, bestie, I'm begging πŸ™

⭐ SEE ALSO ⭐

  • svnserve(8) β€” go read it, it's the whole reason this file exists 🫢

and that's the whole page, you ate that πŸ’… this was svnserve.conf(5) from the File Formats Manual β€” section 5 energy, config-file royalty, main character of the conf directory πŸ‘‘πŸ’– no date on this one so I can't tell you when it was last updated, but the section number and the manual name are right there in the footer where they belong. periodt. βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from