More Code

My recent programming projects, including one (currently) not otherwise released, are available on BitBucket. While most things were already Javascript, which is pretty much necessarily open source (obfuscation aside), you can now clone my Mercurial repositories, and submit back patches, if you like.

A year ago I realized that since I was taking up home programming again, I should probably learn from my experience and actually use version control. I’d switched my company to Subversion from Visual Source Safe – which had minor corruption from time to time, and I’d seen many rumors of worse things.

A centralized system like Subversion made sense for a company with a central repository. For my own use, I’d been hearing a lot about distributed version control. After looking up the available systems and browsing various reviews the field got winnowed down to git and Mercurial. At the time they were pretty much even, and I passed on git because of dubious windows support.

In the mean time, it looks like I managed once again to avoid the mainstream; certainly the Ruby community is solidly git/github based. That did get me interested in the social repository hosting, however.

What is social repository hosting you might ask? At it’s basic level things haven’t changed much from Sourceforge etc. A server hosts the repository so that multiple people can collaborate on it. When you make it distributed version control, things get a little interesting, however. The most obvious feature is that the project page has a ‘fork’ link to allow one user to clone another’s repository. In addition to making their own versions, a link is maintained to make it easy to submit changes back to the original repository. And, really, thats about as much as I know at this point.

In pursuit of open coding, I went looking for a ‘Mercurial github’, and only really found one. Signing up for BitBucket went pretty smoothly. A few minor things to figure out. For one, it lower-cases project names. Another trick was how to upload existing repositories – the web interface only allowed you to create new ones. A few local experiments that pulling into a fresh repository was functionally the same as clone. At first I cloned the BitBucket repository, pulled into it, and pushed the result back. Later I figured out where it stored the default push address. I simply edited the hgrc file of my existing repository, and pushed it up. Nice and easy, especially with SSH set up.

Posted Sunday, December 28th, 2008 under Review.

Comments are closed.