Tuesday, September 13, 2005

Remembering your work

Whenever you have multiple developers working on the same file, be it a program source file, a graphics file, or even documentation, they are going to start stomping on each other at some point. A team typically turns to a source code management system (SCM) to help with this problem. However, most individual developers don't ever use these systems and that's a shame. The beauty of an SCM system is that you can still recover from an "oops" after you accidentally hit "Save" instead of "Save As...". You can get your precious work back if your filesystem corrupts that all important file. And, the way I use it most, you can go back and figure out why your system worked better before you added that last "feature".

I've used many different systems over the years but there are two packages out there that I recommend most for the personal user. They are both industrial strength (because you always end up needing it) but are user friendly enough that I think most any developer could figure them out. They are cross-platform. And, most importantly, they are both free for personal use.

The first is Perforce. We use it internally at NI and it's quite good. Even though it can handle our more than 5 million files, it really works well for just a few files also. You just download the client and the server and run them on your laptop, desktop machine, or whatever. It works over the network if you need it to.

The second is Subversion. It's an open source SCM system that is trying to replace the open source standby CVS. We're using it on the LabVIEW Embedded Development Module public repository and so far it's working nicely. It is much much easier to use than CVS but it has the features that I care about. There's a windows shell extension called TortoiseSVN that makes all of the management rather easy. I found a blog with some links that are probably useful.



At 7:43 PM, Blogger Jim Kring said...

Joel: One cool TortoiseSVN feature that I just discovered is the ability to diff MS Word documents, built in document comparison feature of MS Word -- very cool! Regarding the need for solo developers to use SCM, I can't agree more -- YOU MUST USE SCM IF YOU DEVELOP SOFTWARE PRODUCTS. However, usually individual developers do not have exposure to these tools (or people to help them over the initial hurdles) unless they work on a multi-developer team. But, there is really no excuse not to use subversion. TortoiseSVN makes it so easy to set up a local repository (networked repository setup and maintanance does require a lot of sysadmin skills).

At 8:02 AM, Anonymous Carsten said...

Hey, what about the LabVIEW integrated SCM?

Well, at our company we switched to Subversion and we didn't regret it... ;-)


Post a Comment

<< Home

FREE hit counter and Internet traffic statistics from freestats.com