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
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
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.