The Stochastic Game

Ramblings of General Geekery

Sourcehut Welcomes Bitbucket Refugees

Earlier this week, Bitbucket announced its plan for killing Mercurial support by next year.

This doesn’t come as a shock to anybody who has been a Bitbucket/Mercurial user, since Atlassian’s investment in Mercurial had been declining for the past few years. So I think their reasons for taking this decision are a bit ironic in addition to being shortsighted:

Building quality features requires intense focus, and supporting two version control systems means splitting focus – doubling shipping time and technical overhead. With Git being the more popularly used tool, Mercurial runs the risk of overlooked issues as we scale.

According to a Stack Overflow Developer Survey, almost 90% of developers use Git, while Mercurial is the least popular version control system with only about 3% developer adoption. In fact, Mercurial usage on Bitbucket is steadily declining, and the percentage of new Bitbucket users choosing Mercurial has fallen to less than 1%.

My humble opinion is that:

  • 90% of developers answering the Stack Overflow survey is not 90% of developers.

  • Building a project lifecycle management solution that is completely tied to a particular VCS (Git) means you totally ignore a whole demographic of developers. Git fans often consider people not using Git as “misguided” or “stuck in the old days”, but there are good reasons for using a variety of other VCSes. For instance, game studios have pretty good reasons to use Perforce or Plastic.

  • Putting all your eggs in the Git basket may not end well in the long run. If Git has been popular only for the past 10 years, having overthrown Subversion’s reign which lasted about the same time, what would prevent some other new hip VCS to take over in the next 10 years? There’s probably some good reason to write code faster now and rewrite later, but, well, see previous two points.

  • All those online services competely predicated on you using Git will definitely lengthen Git’s supremacy, but, regardless of whether Git is “good” or “bad”, I see this monopoly as negatively as, say, websites assuming an IE6 browser back in the early 2000s, or assuming an Amazon/Twitter/Facebook account to log you in these days.

  • Isn’t it ironic that, in this age of decentralized version control, we’re centralizing our version control system? It’s even worse when you consider so many services not only assume you’re using Git, but also assume you’re using Github.

Anyway, enough of this nonsense. The most important thing is that if you’re part of the few people (still?) using Mercurial, we’ve got you covered on Sourcehut, with the mercurial hosting service. It’s still rough around the edges (it’s just a couple of us in our spare time after all!) but it’ll get better with time, and, hopefully, with your help. Drew went so far as to write a repository import tool.

If you need some help or have some questions, you can ping me on the #srht IRC channel, sourcehut mailing list, or via the usual means.