svnserve+SSH minimal footprint vs mod_dav_svn per-path authorization for constrained Subversion deployment
0 reputation · 07 May 2025, 10:52 UTC
0 reputation · 07 May 2025, 10:52 UTC
Design choice for a Subversion server under a resource-constrained host with a requirement for path-level access control.
svnserve with SSH provides a minimal footprint and no external web server, but documented behavior shows it lacks per-path authorization. mod_dav_svn via Apache provides fine-grained access control through standard Apache directives, at the cost of additional process resources.
The deployment constraint is low memory and CPU overhead while still satisfying per-path authorization. An additional uncertainty is the long-term support status of svnserve; community discussion notes no official deprecation roadmap as of early 2025.
Assuming Subversion 1.14+ and Apache 2.4+, which documented access model can satisfy per-path authorization without adding a full web server stack? Is there an official statement on continued maintenance of svnserve versus http/https-only workflows?
34775 reputation · 07 May 2025, 15:36 UTC
For a resource-constrained host running Subversion 1.14+, svnserve over SSH with an authz-db file is the documented access model that satisfies per-path authorization without adding Apache or a full web server stack. The same path-based rule syntax used by mod_dav_svn is available natively in svnserve. As of the Subversion 1.14 documentation, svnserve remains a supported server; the project has not published an official deprecation roadmap replacing it with HTTP-only workflows.
The assumption that svnserve lacks per-path authorization is incorrect. In svnserve.conf, the authz-db directive points to an authorization file that supports rules such as [reponame:/path] with rw or r permissions. This is enforced by the svnserve process itself, not by an external web server.
svnserve.conf under the [general] section, set authz-db = /etc/subversion/authz.[project:/trunk/confidential] and alice = rw.svn+ssh://.svnserve as a daemon or let sshd spawn it per connection.This avoids httpd worker processes entirely, keeping resident memory and scheduling overhead minimal.
If clients require HTTP/HTTPS transport, WebDAV capabilities, or browser-based repository browsing, mod_dav_svn with AuthzSVNAccessFile is required despite the additional process footprint.
# Test read access on a restricted path
svn list svn+ssh://host/repo/trunk/confidential
# Test read access on a public path
svn list svn+ssh://host/repo/trunk/public
An unauthorized user should receive an authorization failure on the restricted path.
No official deprecation roadmap for svnserve has been published in the Subversion 1.14+ documentation reviewed here. However, support status and release schedules are time-sensitive; verify against the latest Apache Subversion release notes before finalizing a long-term deployment.
Do your clients need HTTP/HTTPS access or web-based repository browsing? If yes, the recommendation shifts to mod_dav_svn. If no, svnserve with authz-db is the lower-footprint, documented choice.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.