macOS Sierra: Configuring Subversion/SVN on Apache

Every Mac OSX/macOS update brings further challenges to get svn working after the update. Sierra's the latest.

I have a subversion repo in ~/svnRepo

I run some windows development stuff in a VM running on 172.16.99.4 which can connect to the Mac host using http://172.16.99.1. I use Tortoise and Visual Studio.

Normally I build the SVN server on the Mac using the current method. Last time I 'brewed' my own.

Sierra has subversion running, e.g. terminal> svnadmin info ~/svnRepo returns info about the repository.

Questions:

  1. Is it possible to use the native subversion server to serve up subversion to the VM?

  2. Must another subversion server be installed and configured on Apache?

  3. How can Sierra be configured to connect to my pre-existing repo?

  4. Is there a quick and easy way doing this?


Solution 1:

Yes, you can run a native subversion server on your Mac to serve your virtual machines.

If your virtual machines can access services on your Mac, as your question suggests they can, then you can offer a subversion service natively on your Mac.

svnserve

The easiest approach is to use subversion's standalone server, svnserve:

The svnserve program is a lightweight server, capable of speaking to clients over TCP/IP using a custom, stateful protocol. Clients contact an svnserve server by using URLs that begin with the svn:// or svn+ssh:// scheme. This section will explain the different ways of running svnserve, how clients authenticate themselves to the server, and how to configure appropriate access control to your repositories.

A copy of svnserve is included with Xcode:

/Applications/Xcode.app/Contents/Developer/usr/bin/svnserve

svnserve does not require an Apache httpd instance or any other server to work. The svnserve process listens and handles connections from svn clients.

Security Considerations

You can add tunnelling over ssh and other approaches to add security. Without additional configuration, a plain svnserve instance is not recommended for exposure to the Internet; it is not secure by default.

However, for your local-only situation svnserve is likely enough.