markwalling.org if thou seeketh the meaning of life, thou shalt not findeth here.

27Oct/09Off

Mercurial?

Ever since I started developing software as a day job, I tried to make my technology stacks at work and home as close as possible (obviously, I don't have Visual Studio Professional at home, and this is why my personal servers are now Ubuntu instead of Slackware). I've done a fairly good job with that in most areas except for version control.

I started out using Subversion a long time back as my version control system of choice. When I started at my job, the development team was just beginning to form, transforming from a loose collection of developers working on tools, into an organized group. One of the first things I did was get all of our code into SVN, and get the developers to start using it (previously they were storing code in a common network share). It was a learning experience for all involved, including me, since I had never been the one to make decisions about where things go.

In hindsight, I made some bad decisions, but hindsight is always 20/20.

As our group has grown, we have all gotten a lot smarter too. We're starting to use branches for features instead of adding features instead of or, well, less conventional ways.

Meanwhile, on the personal front, Fred Emmott converted me to Git for my personal projects. I only used the basic features, like add, commit, and push. It wasn't until I started working on Twirssi that I started using the "advanced" features like branch, merge, and cherry-pick.

Now, going from Git at home to SVN at work is getting annoying. Recent versions of SVN have added better merge support, and it does work, but it gets to me.

The other thing I like about Git, but have been worried about in a corporate/team setting, is the distributed-ness. I can work on an airplane or somewhere else without VPN connectivity, and have the ability to commit and have local history (this is a Godsend).

And now the downside: Git's Window's support is lacking. Your choices consist of using Git in Cygwin or using msysgit. Due to me futzing with my Cygwin install on our deploy image at work, nothing works, so I haven't been able to play with either of these. There is also no flavor of TortoiseSVN for Git, which is kind of important for us, as we have non-technical users who access files (documentation usually).

In comes Mercurial. Netbeans, our "standard" development environment, has built in support for Mercurial, so it won't require a separate plug in. TortoiseHg looks to be fairly stable, and has support from Google. Google Code also uses Mercurial (along with Subversion, which is a good sign of these two version control systems being at the top of the class).

Wow, I rambled (probably because I was goofing off in the Linode IRC Channel)... Basically, I'm going to try to work with Hg as much as possible for personal stuff, and hopefully be able to pitch it at work soon. Something like Kiln's code review functionality would be nice to have (Commit, then merge back to the main branch after sign off for large changes, let simple ones go right through).

Filed under: Projects, Rants Comments Off
Comments (0) Trackbacks (0)

Sorry, the comment form is closed at this time.

Trackbacks are disabled.