I have previously written about this, and today I’ve had occasion to set up another server. I found out some details doing that, so I thought I’d post an update (as much for my own benefit in case I need to do it again, as for anybody else’s).
So, last time I had been wondering about the problems I saw with the SVNService – basically it didn’t seem to be included in the package. After I had finished the whole process, I had had the idea that maybe the problem was a result of the fact that I skipped repository generation. So this time I just went ahead and had a repository created, even though I didn’t really need one. And that step had the expected result: the SVNService was up and running immediately.
I went on to copy my SNVService.exe.config from my previous installation and restarted the service. Expecting to be able to connect to the service now, I was disappointed – it just didn’t work, without any useful error message. After some clicking around in the TortoiseSVN repo-browser, I found that I had access to the new dummy repository I had created, but not to my own one. The path was also wrong – apparently the repository root pointed into the repository directory, instead of the level above the repository (which is essential if you want to access more than one repository). It became evident that my config file was not being read. A look at the source code of SVNService didn’t show me anything I wasn’t aware of so far. I also thought of the registry, but couldn’t find any setting that appeared relevant.
My next step was to restart the service with FileMon and RegMon running, and that finally came up with the explanation: there is actually a setting in the registry for this version of SVNService, but it hides at HKLMSoftwareClansoft. I have no idea who these Clansoft people are, and Google can’t come up with anything but a few dead links when searching for them. Not the best idea for this package to be included in the 1–Click setup… anyway, I changed the parameter in the registry setting to point to the correct repository root and everything was fine.