CodeToast


Categories


Archives

Meta

Source Control for the unwashed masses

Posted by Nicholas Brookins on 8 July, 2008

Visual SourceSafe (VSS).  Those words make me shudder, and it’s been years since I have touched it.  I was snapped back to the reality so many Microsoft-centric developers deal with when my friend Dave sent this:

Do you really see any advantage to rolling bug tracking, source control, and a development IDE into the same gigantic tower of Babel product?  I don’t see the advantage.  It seems similar to writing software and saying “Look!  It’s a text editor AND a screen saver!” They’re different functions.  In the same field, yes, but different functions nonetheless. Maybe I’m just irritated at TFS this morning.  We rent rack space so our TFS server is remote.  You know how well VSS (which is really all that TFS source control is) handles remote connections.  The end result is when I want to refresh my local source repository, it ran all of last night and is still running this morning.  So we’re working on about 18 hours now.  I could get the entire code base in a couple of hours using SVN and my cable connection.

I probably shouldn’t feel so strongly about source control, but poor source control structure and/or technology feels like a lot of needless man hours lost sometimes.


I haven’t personally used Team Foundation System (TFS), so my comments are mostly regarding the fact that it shares any lineage with VSS. in short, yes you should care that much about it, yes Subversion (SVN) is that much better, and no - I don’t see an enormous advantage in combing bug tracking and Source Control Management (SCM) into the same product.  For one thing, Fogbugz is a great bug tracking application, it is inexpensive, and it integrates with several SCM systems.  At SAM Systems we’ve been using Fogbugz and SVN both for several years, but we’ve never bothered to look into integrating them.  It just doesn’t add anything for us.


The biggest thing for me is integration with Visual Studio.  There is a great SVN client called TortoiseSVN that is a shell extension to Explorer.  It works extremely well - and since it isn’t IDE-centric, it allows for easy use of SVN for your documents or just about any file resource.  The only problem is that if you move files in Visual Studio - say dragging a cs file into a sub folder of your project, or even adding a new class, SVN doesn’t pick up on the change.  Later you’ll realize your files didn’t get checked in and it can be a pain to find all of them.  VisualSVN to the rescue.  It is a Visual Studio plug-in that lets SVN know about the actions you make, keeping everything in sync.  you can also update or commit changes from the IDE.  It is a commercial project, but very inexpensive and very worth it.


SVN is literally over 100 times faster than VSS.  It doesn’t require crazy bindings that always get broken.  It doesn’t have an asinine database design that is always getting corrupt, and has to be taken offline for integrity checks, that with our modest code base could take more than half a day.


There are tons of alternatives to Visual SourceSafe.  Some are expensive (Perforce, Clearcase) and designed for larger teams, while others are free/open source (CVS, SVN, etc..). Some even have neat-o comic advertisements in programming magazines.


ALL OF THEM ARE BETTER THAN VSS.


Well, there are hundreds out there - maybe one is worse, but unlikely.


I can’t be too hard on the VSS users though.  In general if you work in a Microsoft-centric world and there is an MS product to server your needs, it’s probably the right choice*.  Also, just the fact that you are using source control is commendable - a shocking number of teams, even reasonably big teams, use nothing -and email source files or fight over source on a network share.  Ack!


Do youself a favor.  If you have more than zero developers and either do not have source control, or are using Visual Source Safe, try Subversion.  It will be a lot easier than you think, and you’ll kick yourself for not trying it sooner.


* More to follow in a future post - experiences from building a new clustered datacenter.







4 Responses to “Source Control for the unwashed masses”


  1. Maulik Modi Says:

    I agree with you when you say TFS is a way slower than Tortoise. However if you try to look at the ALM(Application lifecycle management) side of it, its a big leap forward in the right direction. It allows to streamline project lifecycle by keeping everyone(Customer, Project Manager, Developers, Testers, Analyst) informed about the up-to-date status of project.

    If you are not just a Microsoft shop then my picks for the ALM tool will beRalleyDev
    VersiononeTargetProcess

  2. Martin Gray Says:

    One of the guys I work with passed along a Subversion plug-in for Visual-Studio http://ankhsvn.tigris.org/ I’ve been using it for awhile now and find that it’s much easier than keeping track of things with TortoiseSVN.

  3. Nicholas Brookins Says:

    Thanks for the comments.

    Martin: I had tried AnkhSVN when we first switched to Subversion about 3 years ago or so, but at the time it was very buggy and would often bring down VS.Net. A while later we found VisualSVN which has been solid,but I didn’t keep up with updates to Ankh.

    Has AnkhSVN been stable for you? If so it might deserve another look from me!

  4. Michel Francis Says:

    k8php4qpyf0t6xkj


Leave a Reply