What is the name of the Subversion server process on MacOS? I'm running a Subversion server on MacOS. My remote IDEs connect no problem (using ssh tunneling). But, I can't figure-out the process name of the Subversion server.

It is so easy:

$ mkdir svnroot
$ svnadmin create /Users/johndoe/dev/svnroot
$ svn checkout svn+ssh://jdoe-macbook/Users/johndoe/dev/svnroot


But I go looking for the server as such:

$ sudo ps -eal | grep svn


doesn't return anything. And none of the processes listed in Activity Manager jump out at me as anything that might be a Subversion server. 

To get ssh tunneling to work, I had to make adjustments to System Preferences --> Sharing. The ssh server is involved first. But then, what is ssh connecting to to manage the Subversion repositories?
When you tunnel over ssh using svn checkout svn+ssh://.., the svn client is actually running svnserve -q -t for the duration of each ssh connection and then shutting down svnserve when the connection closes.

If you want to see this in action, try opening two Terminal sessions:


In Terminal session 1, run an svn command with the svn+ssh:// protocol. Assuming you don't have any ssh identities saved in your ssh-agent, this should pause waiting for you to enter your password: svn checkout svn+ssh://localhost/Users/johndoe/dev/svnroot.
Now switch to Terminal session 2. You should be able to find at least one svnserve process open via:  ps -ef | grep svnserve.

For example, you should see a matching process similar to:

501 12869 12856   0  6:06pm ttys001    0:00.03 ssh -q -- localhost svnserve -t
If you return to Terminal session 1 and either complete or abort the svn command, the associated ssh session and svnserve process will quit.


Note: if you are connecting to a local repository you can use the file:// protocol instead of tunnelling back into localhost via ssh.

For example:  svn checkout file://localhost/Users/johndoe/dev/svnroot