VC ... No, Not That VC
... Version Control.
I might as well put in my two cents about version control, now that git has been getting all the blog press for the last, oh, forever. I'm always late to the party. For example, I just started working in ruby this year, and have already missed all the cool kids at RubyFringe.
Anyway, back to version control. It's a topic that I used to care about a lot. My previous employer bundles build tools in with a number of enterprise version control tools, so I got to see a number of them up close and in person. Of course, "enterprise" and "distributed" go together like oil and water, so I kind of missed out on the git/bzr/mercurial debate, but it seems that git is getting the lion's share of the distributed market, because, if it's good enough for Linus, it's probably good enough for you. My former colleague and UofC old boy Long Nyugen has a nice write-up for using git with github for distributed VC.
However, the bottom line is that it doesn't matter to first order what version control tool you choose. The step up from non-VC files (class1.cs, class1.cs.bak, class1.cs.orig ... ) to any VC system is gains you so much that you just need to go pick one. Svn, cvs, git -- it doesn't matter. It's not that they're equivalent, not at all. It's just that not using VC is so bad that picking any VC tool is a huge win. Probably picking the simplest one to start is the way to go. If your tool is too complicated, it discourages use. Then you're back to class1.cs, class1.cs.bak, class1.cs.orig...
Here at Scimatic, we're currently using Svn. It's fine, and covers about 95% of what we need to do. The main difference with how we've set it up is that we use a remote hosting service for Svn (in our case, http://www.svnrepository.com/. They also do git!), which is a similar service to github. The gain for us is off-site backups and remote access. If our office were to be burgled, not only would we lose our Ubuntu server and our laptops, but we'd lose all our code. I can buy another laptop. Also, I sometimes work from home, and setting up a VPN to get back to the office a huge pain. Nice to get to the svn repository and to Trac without tunneling into the office.
Some people argue that putting one's code on a remote server compromises one's IP. Maybe, but I figure it's worth the risk. I don't think anyone who manages access to our Svn repo is going to be thrilled to find that they've now stolen code to figure out how to do monophasic langmuir isothermal rate equations in C#. Hell, if you want to know how to that, email me.
So, get a version control tool. Put it somewhere remote. And commit everything you ever work on.


Post new comment