I haven’t used subversion yet, but I was hoping to use it for a new project and to host it on my DH server. According to the FAQ, SVN doesn’t need Apache:
[i]I heard that Subversion is an Apache extension? What does it use for servers?
No. Subversion is a set of libraries. It comes with a command-line client that uses them. There are two different Subversion server processes: either svnserve, which is small standalone program similar to cvs pserver, or Apache httpd-2.0 using a special mod_dav_svn module. svnserve speaks a custom protocol, while mod_dav_svn uses WebDAV as its network protocol. See chapter 6 http://svnbook.red-bean.com/html-chunk/ch06.html in the Subversion book to learn more.[/i]
Reading more about the stand-alone svnserve program, it looks like it would be pretty easy to set up. Here’s a bit from that link to chapter 6 of the svn book:
[i]…On the other hand, some administrators already have well-established SSH authentication frameworks in place. In these situations, all of the project’s users already have system accounts and the ability to “SSH into” the server machine.
It’s easy to use SSH in conjunction with svnserve. The client simply uses the svn+ssh:// URL schema to connect:
$ svn list svn+ssh://host.example.com/repos/project
firstname.lastname@example.org’s password: *****
What’s happening here is that the Subversion client is invoking a local ssh process, connecting to host.example.com, authenticating as the user harry, then spawning a private svnserve process on the remote machine, running as the user harry. The svnserve command is being invoked in tunnel mode (-t) and all network protocol is being “tunneled” over the encrypted connection by ssh, the tunnel-agent. svnserve is aware that it’s running as the user harry, and if the client performs a commit, the authenticated username will be attributed as the author of the new revision.
When running over a tunnel, authorization is primarily controlled by operating system permissions to the repository’s database files; it’s very much the same as if Harry were accessing the repository directly via a file:/// URL.[/i]
In fact, maybe DH doesn’t need to do anything. Maybe I can just install svnserve in this run-only-when-needed-mode on my own account. (Or maybe I’m not allowed to install such software since it’s a shared machine?)