Sunday, July 08, 2007

Virtual Subversion for Small Software Project?

Virtual appliance idea is lovely.

You are a .NET developer, starting a small software project. It comes along, and you feel it is time for source control. You want to use Subversion because friends say it is cool and fancy. But installing and configuring subversion is a mess and a pain. You are reluctant, if you never did it. And intimidated, if you have already tried.

The answer is Virtual Appliances. Look how lovely:

I download a virtual appliance with subversion installed and preconfigured. Power up a Virtual machine; with couple of touches my subversion server is up and running. No mess on my laptop. No dusty ubuntu box in the corner. No installing Apache, no configuring subversion. All is prepared and packaged professionally. I bring up the VM when you need it, and where you need it. In the morning, check out, in the evening, check in. The rest of the day it can sleep as a file on my pocket USB hard drive. As the team grows we will run it 24/7 on the network server. Sounds ideal for a small mobile team.

Reality check.

Googling "subversion virtual appliance" brings up JumpBox and Young Technologies. I go for Young[*]. Download VM: 15 min at 180Kb/s. Unzip it: 3 minutes. Fire up VMWare Workstation (VMWare Player or VMWare Server would do just fine). Open VM, boot it up. From my host machine, go http://srvsvc. Hey it works!

As the Youge Tech VM has ssh daemon on, I switched to using Putty. It is convenient: doesn't lock the mouse cursor as VM console, and works faster.

Following the instructions, I created repository, and exposed it with WebSVN.

Figuring out the versions of installed software took another half hour. Yeah, I am slow on Unix. Subversion 1.3.1, Apache 2.0.55. Why should one care about Apache? I don't quite like TortoiseSVN with all that integration to Windows Explorer. And subversion windows clients are different binaries for Apache 2.0 and 2.2. While installing CollabNET my laptop crashed badly. Finally I settled with TortoiseSVN.

Bridged network is a bit funky when I switch from wire to wires and back. No more walking to the balcony and to the office and back.

Another glimpse: I can connect to Samba \\svnsrv\Public share from remote Win200, but can't do it from the host WinXP machine.

The rest of the day was headache with setting up authorization for subversion repositories. I kept on getting "Authorization failed". Before I forgot, here is how it should look to work. Go to /var/svnroot/myrepo/conf . There are three files there. Edit passwd and svnserve.conf. Don't touch authz unless you know what you're doing.

sudo vi passwd


sudo vi svnserve.conf

anon-access = none
anon-access = write
#For simplicity, forget about it
#authz-db = authz

realm = MyRep

You say "man it is subversion trivia, it is all in the book, you have to know it to use Subversion". Yes, but it defeats the whole point. A virtual appliance should be appliance! Preferably made in Japan, so that I just power it up and get back to playing with my project.

The biggest disappointment came at the end: I can't run the VM from USB Hard drive! Urrrr! And why? Cause the damn virtual hard drive was configured to be a single file! Wrong: should have been 2GB chunks. Worst part, it can't be changed.

Virtual appliance idea is lovely. Young Tech Subversion implementation is close, but not close enough. Should I have gone for JumpBox?

Results: summer Sunday spent, subversion running, play project checked in, blog post done.

[*]>Why Young Technologies? No particular reason except JumpBox VM also has Track on board, which I didn't care or want at the moment.

See also:
Virtual Subversion Appliance, and Ingore Filter for C#
Further Development of Virtual Subversion applience at "Dmitri on Virtualization"


AddThis Social Bookmark Button


At 7/23/2007 12:26:00 AM , Blogger Dmitri Zimin(e) said...

I learned the light way to set anon-access = none. Overwise on Update Subversion fires the error: svn: Not authorized to open root of edit operation. Fixed.

At 9/20/2007 03:01:00 PM , Anonymous Sean Tierney said...

> Should I have gone for the JumpBox?

Dmitri, yes. With ours you get Trac integrated with Subversion and there is only one initial screen of config required to have the entire installation working. There's a 2min demo video on our homepage that shows the process of setting it up.

The other advantage is that you can use the Trac web interface to manage your SVN installation - so adding users doesn't require altering config files. give it a shot and I think you'll be pleased with the JumpBox->


At 9/20/2007 03:27:00 PM , Blogger Dmitri Zimin(e) said...

thank you for your comment;
I had been playing with JumpBox WordPress and your other appliances. I liked that they are created with good taste and great care; I disliked not having full control of the intallation (well, it is intended for an appliance after all).
I didn't want to have Track at the moment, in fact the presence of track Track turned me away.



Post a Comment

<< Home