Source Code Control (Melbourne Dot Net Users Group)

Published 24 March 04 08:58 PM | alexcampbell

I went to the Melbourne Dot Net Users Group last night.  The topic of the night was source code control, something I have ignored for several years but that is starting to become an topic of discussion at my place of work.

Once again, the hammer paradigm is great for explaining the options available to us.

The Small Hammer
We scream out “I'm checking out module1.cs, don't anyone touch it!” and hope that everyone else hears and takes note.  Needless to say, a source code control system that falls apart when programmers put their headphones on to listen to D12 is doomed to failure (I guess email and clever scheduling will overcome this difficulty).

The Medium Hammer
Visual Source Safe... it is a cruel summary of modern software engineering that we need even consider Visual SourceSafe 6 for source control.  The current version (6.0) was released so long ago that it could now be a museum item.  It has those awful Windows 3.1 dialog boxes that remind me of 1994 (the same ones that I vowed never to see again in 1995).  A particularly concerning feature of VSS6 is that like most MS apps that were developed before 2003 it stores its database in a bizarre formats and an even more bizarre folder structure.  Unfortunately, it seems that the database has a habit of periodically corrupting, and the wacky way in which the data is stored makes recovering this data impossible (keep good, regular backups!!!).

Nices thing about VSS6:

  • cheap ($800AUD)
  • fairly simple
  • integrates pretty nicely with VS.Net

Awful things about VSS6:

  • everything else

The Nuclear Hammer
CVS... runs as a client/server IP app.  Used by the vast majority of the open-source community, particularly for projects where many developers are in different locations.  Started out in Unix-land so retains many Unix archaisms in its configuration settings.  Practically impossible to configure without the manual because the dialogs are so useless.  Stores its everything in plain text files so if someone/something fucks up the repository it is concievably possible to recover the data.

CVS is only the server component - you also need a client component.  The most prominent amongst these are WinCVS and Tortoise.  My personal theory is that the developers behind these two products are competing to see who can create the most frustrating/obscure UI.  The Tortoise team seems to be winning (various icons that resemble cigars, chairs, pencils, and crack pipes), although WinCVS puts up a good fight.

Nice things about CVS:

  • free

Awful things about CVS:

  • impossible to use without significant time investment in learning UI

 

Alternatives
I gather that MS uses a custom in-house source code control system.  If it's good enough for them, it's good enough for us.  Why don't they throw a miniscule portion of their desktop monopoly profits at making this releasable?

The Future
Microsoft obviously doesn't see source code control as a highly competitive market (apparently they have half an employee working on VSS at the moment).  There are apparently no new versions planned.  The future looks rather grim.

Conclusion
I don't have time to figure CVS and its awful clients out.  I don't want to leave Visual Studio to run a third party app to check code out of the repository.  We can't afford to have our code stored away in a proprietary (read “completely undocumented“) file format like VSS.  We don't want to spend the big $$$ for something like SourceGear.

So I think the small hammer is going to have to do.

Cynical closing note: apparently a Microsoft employee has been quoted as saying, "Visual SourceSafe?  It would be safer to print out all your code, run it through a shredder, and set it on fire."

Comments

# Frans Bouma said on March 24, 2004 06:11 AM:

Get subversion: http://subversion.tigris.org
Free, runs native on windows, has excellent client support and doesn't have the bad things of CVS. It also comes with a free book in .chm format and it is excellent written, so documentation is brilliant (more docs than vss f.e.). It should you get up and running in no time.

I use it now for projects and I will never ever go back to sourcesafe.

# Yves Reynhout said on March 24, 2004 06:42 AM:

Subversion integrates with VS.NET IDE via http://ankhsvn.tigris.org/ and provides an explorer via http://rapidsvn.tigris.org/

# Anand said on March 24, 2004 07:19 AM:

I thought Vault had a single person free license. Also they recently reduced the cost of the product.

# Brenton House said on March 24, 2004 07:53 AM:

Definetly go with Subversion. It is by far the best source control system out there. And it is free! It works great with the VS.NET plugin and also Tortoise. (which I don't understand you complaints about it. It is very simple to use and understand.)

# Karl said on March 24, 2004 08:34 AM:

"There are apparently no new versions planned" I was sure there was "officially" a "significant" version planned "for" Whidbey....

# Karl said on March 24, 2004 08:35 AM:

Well, that didn't take as long to find as I thought:
http://blogs.gotdotnet.com/korbyp/permalink.aspx/c62c59bb-619e-4aa6-81f7-62f7716aa5e3

A little old, so it's possible things have changed.

# unix said on March 24, 2004 08:59 AM:

You, windows guys always forget that first was the command line, then came everything else. :-)

# Mark Erikson said on March 24, 2004 02:20 PM:

I'll toss in another plug for Subversion.

I must say that while I agree that WinCVS has a downright freaky interface, I don't see your confusion over TortoiseCVS. Things might be different in whatever version you're using, but in the one I've got the only icon that's used is the little turtle. Other than that, all you need to worry about is what color the overlay is on a given file and which command you want to run from the context menu. TortoiseSVN goes a little more into different icons for each context menu command, but even if you don't like those, you can always read the menu item itself.

If you still don't like the Tortoise* clients, you can check out the links for AnkhSVN and RapidSVN that Yves listed.

# Korby Parnell said on March 24, 2004 02:24 PM:

"(apparently they have half an employee working on VSS at the moment)"

Hey, I resemble that! ;-) Actually, Microsoft has been investing in SourceSafe and source control integration in Visual Studio .NET. IMHO, we are fully staffed and firing and all cylinders.

BTW, my blog address has changed to http://blogs.msdn.com/korbyp

# Thomas Williams said on March 24, 2004 05:42 PM:

Hey Alex -

I agree with the hammer illustration...I've worked at a shop with 9 programmers where no SCC was used - bad, very bad - in essence, we were screwed. Now I'm a sole developer, for some reason I took the time to set up CVSNT on a server and Jalindi Igloo in VS.NET and it worked OK (yes, tedious to set up, but docs were available and I eventually nailed it). If I needed to go back to using source control I'd probably do the same again (and more than one person using this wouldn't throw a spanner in the works).