Art Of Programming

musings by Dmytrii Nagirniak

Install Subversion on Windows 2000

The problem is that Win2000 has no Control Manager command line tool, so SVN does not register itself as a Windows Service (in case you choose this option).

I tried to use sc.exe with no success at all.

sc create svn binPath="c:\Path To\SVN\Service.exe" with all possible options just shows me the help screen.

Here’s couple of options I’ve tried:

sc create svn binPath="""C:\Program Files\CollabNet Subversion Server\svnserve.exe"" --service -r c:\svn_repository --listen-port 3690" start=boot DisplayName="Subversion Server"
sc create svn binPath="C:\Program Files\CollabNet Subversion Server\svnserve.exe" start=boot
sc create svn binPath="wrongFile.exe"

All of them give the same help screen with the same info and no service is registered.

 

So I installed Win NT 4.0 Resource Kit Support Tools. The bad thing is that it asks me to restart the server. It contains the same sc.exe - nothing new to manage services.msc.

Next attempt was to try instsrv.exe from Windows Server 2003 Resource Kit. But it says that it really supports XP and 2003 (I expect I would be able to use only one utility from the package, but I can’t even install it).

I hit Create your own user-defined services Windows NT/2000/XP/2003 article but still cannot find where to download the resource kit for Win2000.

Searching again… As a result I found Windows 2000 Resource Kit Tools for administrative tasks. But it has no instsrv.exe (thou it has delsrv.exe that deletes the service). Hrr!

Ok. Now let’s try to take the instsvr.exe from Win2003 server. Maybe it will work on Win2000… I install the Win2003 Resource Kit. Take that file and copy it to Win2000’s system32 folder. Now let’s pray:

instsrv svn """C:\Program Files\CollabNet Subversion Server\svnserve.exe"" --service -r c:\svn_repository --listen-port 3690"

This gives me "- The fully qualified path to the .EXE must be given" which is much better.

instsrv svn "C:\Program Files\CollabNet Subversion Server\svnserve.exe"

This one worked well and the service was in the list. At last! It doesn’t allow me to specify the parameters of the service itself, so I’m going to service Properties to change it. But then it just doesn’t start (we need to add command line arguments as well).

So I remove the service from the list and start from scratch. I went back to sc.exe and installed SVN server to location where the path has no spaces (weird).

After couple of manipulations and a lot of Googling and fiting with troubles I found the exact command that registers the service and allow to start it. Please note: the service name should be the same as executable (one more weird thing), command line parameters must have space after = symbol. So here’s the result:

sc create svnserve binpath= "C:\SVN\Server\svnserve.exe --service -r C:\SVN\repository --listen-port 3690" displayname= "Subversion Repository" depend= Tcpip

 

Hope it saves your time.

Comments

Dmytrii Nagirniak
You are welcome.
goosy
Thanks so much, I was having the same problem, it always appeared the sc help screen and no service was created. I finally found the solution!!!
Dmytrii Nagirniak
Hi Alexander,

Huh. It’s enough for me :) I don’t really want struggle again with SVN, especially on Unix (which I’m not really familiar with) :)

It was painful enough for me to install it on Win2000.

Thanks for the info on Git. It looks good, but it is a distributed version control. I really need centrlised one.

Cheers.
Alexander
After all this stuff, you should try to build Subversion 5 client from official source on Ubuntu Hardy Heron :)

This turns to be interesting experience, too.

Anyway - SVN rules, and I’m happy to see people using Subversion instead of MICRO$OFT source providers.

Btw - there is one more option for source control - GIT.
I know not much about it, but it seems to be times faster. And it is used for some opensource projects.

Comments