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 π).writeaccess lets them do all repository operations.readaccess lets them do all operations except committing and changing revision properties.noneaccess lets them do absolutely nothing. The default level isread.auth-access = none|read|writeβ decides the access level for authenticated users, using the same three access levels as above. The default level iswrite. β¨password-db = filenameβ sets the location of the password database. Thefilenamemay be relative to the repositoryconfdirectory. 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. Thepathmay be relative to the repositoryconfdirectory. Thepathmay also be a repository relative URL (^/) or an absolutefile://URL to a text file in a Subversion repository. There is no default value. If you don't specify anauthz-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
- alpine 3.22: subversion-doc 1.14.5-r0 Β· Apache-2.0 AND BSD-2-Clause
- alpine 3.23: subversion-doc 1.14.5-r1 Β· Apache-2.0 AND BSD-2-Clause
- alpine 3.24: subversion-doc 1.14.5-r1 Β· Apache-2.0 AND BSD-2-Clause
- arch rolling: subversion 1.14.5-6 Β· Apache-2.0
- centos-stream 10: subversion 1.14.5-3.el10 Β· Apache-2.0
- centos-stream 9: subversion 1.14.1-7.el9 Β· ASL 2.0
- debian bookworm: subversion 1.14.2-4+deb12u1 Β· Apache-2.0
- debian trixie: subversion 1.14.5-3 Β· Apache-2.0
- fedora 43: subversion 1.14.5-20.fc43 Β· Apache-2.0
- fedora 43: subversion 1.15.0-2.fc43 Β· Apache-2.0
- fedora 44: subversion 1.14.5-26.fc44 Β· Apache-2.0
- fedora 44: subversion 1.15.0-2.fc44 Β· Apache-2.0
- nixpkgs unstable: subversion 1.14.5
- nixpkgs unstable: subversion-client 1.14.5
- opensuse-leap 16.0: subversion 1.14.5-bp160.2.1 Β· Apache-2.0
- opensuse-leap 16.0: subversion 1.14.5-bp160.2.1 Β· Apache-2.0
- opensuse-leap 16.0: subversion 1.14.5-bp160.2.1 Β· Apache-2.0
- opensuse-leap 16.0: subversion 1.14.5-bp160.2.1 Β· Apache-2.0
- ubuntu jammy: subversion 1.14.1-3build4 Β· Apache-2.0
- ubuntu jammy: subversion 1.14.1-3ubuntu0.22.04.1 Β· Apache-2.0
- ubuntu noble: subversion 1.14.3-1build4 Β· Apache-2.0
- ubuntu questing: subversion 1.14.5-3
- ubuntu resolute: subversion 1.14.5-6build1 Β· Apache-2.0
- ubuntu stonking: subversion 1.14.5-6build2 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms