As someone who’s specialized in software artifact management over the past ten years, I’ve had the opportunity to use most of the mainstream source control tools. Some are better than others and a couple of them are truly pigs.
I’ll get right to the point with a quick list of tools and why I like or dislike each.
CVS
This is the best one I’ve used (and not suprisingly is what I use behind freepository) Here’s what I like about cvs:
- Easy and fast to setup
- Easy to customize
- Easy to troubleshoot & repair (the repository is just a bunch of files…)
- Cross platform
- File-based
- Metadata is easy to collect and analyze
- Extensible (plugs into just about any type of build automation)
- Large user base, lots of documentation and tips
- Many, many clients - CLI, GUI, and IDE integration
- Well suited for network use
- Easy to secure using cvs-sserver (pserver meets SSL)
- GPL’ed
Here’s what I dislike about CVS:
- Ummm, hmm. Right. I’ll get back to you on that.
Clearcase
Ugh. If you can go through life without having to use this Pig of Pigs, pat yourself on the back and thank your lucky stars. This is simply the worst source control tool out there, but you’d never know it by the amount of marketshare Rational was able to grab with this tool. Here’s the dirty little secret: developers who had to use those licenses didn’t buy those licenses, nor were they very often consulted prior to the purchase. VPs and above bought the licenses. Rational learned early on that they needn’t be too concerned about how the product worked for developers, as long as they could convince the VPs and CIOs that “…your development is at risk without this tool” etc. etc.
I believe IBM bought Rational simply because it had gotten onto *so* many desktops, and it makes for a very convenient means for introducing new thin client stuff (just put it into a Rational Suite update. Over the next six months, your new functionality is rolled out onto *all* those desktops, almost effortlessly. This would be a great way for IBM to seed SI to the developer space).
Kudos to Rational for gaining so much marketshare, but it would have been nice if the tool actually enhanced the development experience, rather than inhibited it. I saw first hand many instances of developers going out of their way to *not* use Clearcase, simply because it was so slow. I can recall this as recently as 2003 at a client.
There’s nothing I like about Clearcase at all. But hey - there’s *lots* I dislike, so here’s the list:
- The imaginary filesystemThis is so slow I can’t even describe it without sounding cartoonish. It is just sloooooow. And the way this is implemented, as set of nested shells, makes automating Clearcase processes a tedious nightmare. No fun at all, and automation is something I usually enjoy.
- The view serverThis just doesn’t make any sense. Why shouldn’t my ‘view’ be stored locally? Why is the view something that has to be stored anyway? Why are the versions of files I select (branch or head context) subject to the contents of yet another file, which *itself* has to be selected? Damaged views, or incorrect views, caused my clients countless headaches. A developer should be able to quickly & easily determine his/her source context. I saw *many* otherwise bright people stumble over this view nonsense.
- VOB ServerStoring your source code revisions in a database sounds sexy:
“Yeah, Bob, I can get that version for you anytime of the day or night - it’s right here in my version control database“.
What that doofus doesn’t understand is that every version of every file is in that database, locked inside a seemingly random-number-named file, inside an equally random appearing hierarchy of directories. Um, those are your revisions. And when the database gets corrupted (it probably will), most of all of the pointers to those files and directories will no longer… um… point to them… making the database… um… kinda useless. Go get the tape backups (hope you have them).
A bit more seriously, though the RAMIS database server *was* prone to crashes (data loss) in the late 90s. When it crashed, work just stopped, because everyone’s clients were constantly connecting to the VOB server. And when the VOB server stopped responding, all these clients either started throwing errors or just hanging. Nice.
I don’t know if it is any better now, but be sure to ask about it.
- Feature mismatch between base Clearcase and Clearcase UCMThis may have been expected as UCM was rolled out, but the mismatch was still around for quite a while. No idea if it still is…
- The need for multiple fulltime administrators
Have you ever heard of any other developer tool that required its own *dedicated* set of administrators? These people did *nothing* but create views & VOBs *all* day, and ensure that the VOB servers were always backed up… in case… you know, they crashed.
I’ll come back later and add my thoughts about Visual Sourcesafe, PVCS, RCS and Perforce.
I’ll add a posting about Subversion one of these days, too. I just don’t yet have enough experience using Subversion to give it a well informed review, and its penetration into the production space is almost zero. I’d love to hear from anyone using Subversion in a production environment - by that I mean a Subversion implementation in use at a company that isn’t somehow related to either its development, or has a vested interest in using (say, to promote other open source products or services it may be selling). But CVS started as a set of shell scripts, and now claims several million users worldwide. Perhaps wide-spread adoption of Subversion will occur over many years, as it did with CVS.
I really like the *idea* of Subversion. Its just that the implementation that I’ve seen so far has left me a bit disappointed. I was hoping for CVS on steroids (sorry, but I can’t quite put it any other way), and it what I saw looked more like Clearcase on a diet - slimmer, but still pretty much the same. I am looking at it again with an open mind, so we’ll see.
EDIT: On January 1st, 2007, Freepository began offering Silver accounts, which provide on-demand Subversion & Trac workspaces.

Post a Comment