Today, purely out of boredom, I created a trial Kiln account. Fog Creek is well known for pampering programmers, I wanted to see how they built an offering out of Mercurial. If you are reading this, there is a 90% chance that you found my site via Google while searching for something Mercurial related. Yes, I love HG, I’m one of the people who still, to this day, don’t quite ‘git‘ it.
Selling the idea of using Mercurial to enterprise customers is sometimes difficult, especially dealing with start-ups who have managers that only know how to court venture capitalists. These managers are often put in charge of operations and justifiably rely on, even inherit the preferences of their trusted senior developers. By the time I get called in, all titles are taken. I’m just a measly outside contractor that yaks and horks hairballs at the sight of Subversion and bleeds from all three eyes when confronted with Git. I’m not going to go into Kiln yet, I’m just going to describe what typically gets Mercurial bounced like a superball right out of the room when I bring it up. Everything I’m going to list below is completely false:
There’s no intuitive GUI client
No complete development systems wrap around Mercurial
Mercurial is slow
Mercurial is prone to corruption
Mercurial is difficult to hack and extend
Mercurial’s learning curve is just to steep
Mercurial requires switching to GNU
The company backing Mercurial is not stable enough, development may just stop one day
As I said, everything above is complete and total FUD. The only possibly subjective point might be speed, which is broadly effected by how fast drives spin and how much memory is available at the time. Merges in any DVCS are intimidating, which is why people try their best to avoid conflicts that have to be resolved. If I catch someone simply typing hg pull without first looking at what they are pulling in, I use the opportunity to practice ovation R. Lee Ermey style.
There are, however, some serious hurdles to accomplish when pitching Mercurial. Branches, for instance, require extensive study of the Chaos theory to understand, thus a lot of people forgo the ‘push me’ from the ‘push me pull you’ mantra. What you end up with is half a dozen clones of the same branch, each working independently with a bunch of ‘please review and pull’ requests that burden the often single gate keeper to the stable code repository. I’ve seen it so many times, a single ‘chief’ maintainer keeping a list of revisions to pull in order so there are no conflicts while people fix bugs and forget to say something. This results in stable becoming the complete opposite and many people scratching their heads.
Fog Creek simplified this process to the point that its almost enjoyable again. Push a change, ask for a review .. and watch it reciprocate to the built in FogBugz bug tracker. Pull a feed of review responses on your mobile if you are really dwelling on that crazy optimization you just attempted. Branches work just like anyone without an IQ of 300 would expect and there is no issue with using your native HG client to continue to do business. In less than five minutes I created an account, pushed a repo, played with it and found no issues exploring the very intuitive UI. I was not disappointed, in fact, it exceeded my expectations.
Lets get down to the final part – I cancelled my demo account. Fog Creek gave me a place to write an optional reason and I simply put ‘Its just not for me .. ‘, which is true. Anything I do on my own time is free software, I’m more than comfortable and happy with Mercurial as-is. There’s no sense in me occupying disk space on someone else’s servers that I’m not going to use. Additionally, there is no reason to lead Fog Creek to believe that I might be a paying customer. I was curious, I tried it out and in the space of fifteen minutes I have to say, I love it. Something amazed me when I finally hit the “Yes, I really mean it” button when cancelling my account, I was presented with links to download my data in a variety of SQL formats. That, friends, is something that most ‘open source’ forges don’t offer. If you use Fog Creek’s service and decide its time to go, your data goes with you. Notable people like ESR have actually tried to resolve the forge project data jailbreak issue created by ‘open’ forges by trying to parse HTML with regex! Yet, Fog Creek was happy to send me on my way with all of my data.
When spending other people’s money, I plan to direct it to Kiln, especially since it allows me to work with Mercurial as I normally do. When its my own dime, any old box with Python will do
To those of you who are about to wage an idealistic war in comments, some of us aren’t fortunate enough to be paid full time by some foundation. Some of us actually have to pay our bills in order to keep working on hobby projects. This means, yes, some of us actually have to (gasp) work on proprietary software. Sure, I wish Fog Creek offered a free deal for free/open source projects too. Given the caliber and features of their system, how would they benefit from hosting thousands of high profile projects that would surely flock to it quickly?
If you want to use HG at work and your company has a little coin to spend, direct whoever might be effective to Kiln. Its not like the repositories are public anyway, you may as well enjoy some really cool creature comforts.
There are no disclosures to add. I am in no way affiliated with or compensated by Fog Creek Software. This post, in its entirety is a product of boredom coupled with the urge to say “DAMN! That’s nice!”