Sharing a little programming know-how…

Version Control Everywhere

Version control seems to be everywhere I look these days. The number and variety of version control systems prompted me to write this article. Of course, you can always consult Wikipedia’s article on Version Control for more up-to-date information.

I code a lot in Java, which is a fairly open language although since Oracle’s acquisition of Sun Microsystems and subsequently the intellectual property of the Java language it is becoming less so. I mean one of their first actions after the acquisition was to sue Google over the use of Java in the Android operating system. I digress. That’s a whole other topic. My point is that Java is used in lots of open source projects and by consequence these are typically managed by some type of version control.

How many have I come across in just the past few months you ask? Let me count the ways:

  • There’s SVN, which has gained considerable popularity as the defacto version control system for Google Code
  • There’s Mercurial, which I’m not familiar with but is used by a few open source projects I’ve checked
  • There’s Maven, which is project management framework with version control built-in
  • There’s Git, which again, I’m not really familiar with but it’s used in some projects I’ve come across
  • Lest I forget the granddaddy of them all, you’ve got CVS as well if you are feeling nostalgic

Of these, Maven is probably not a true version control system. But when discussing projects managed with Maven, you’ll hear “repository” used a lot, but “checkout” not so much. I’m also not saying these two words alone describe a version control system. Geesh, lighten up! This article’s being written for fun.

Okay, so all these version control systems are out there including many more proprietary systems… check the Wikipedia article for a full list. So what? My real gripe is having to learn all these systems to work with the various open source projects. And then, learning is not even so bad. It’s having to download and install the clients for each one of these systems. It would be nice if someone developed a universal version control client that could interface with all the different systems out there… Oh wait, someone’s doing that too! Check out Amp, a fledgling universal version control system.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.