Hacker News new | past | comments | ask | show | jobs | submit | page 2 login
Sunsetting Mercurial Support in Bitbucket (bitbucket.org/blog)
357 points by ingve on Aug 20, 2019 | hide | past | favorite | 355 comments



Over the year I've used CVS, SVN, bazaar, Mercurial and Git. Mercurial has always been the one I struggled the most with. It never clicked with me. Just to respond to some arguments I see floating around.

In my last team we switched from Hg to Git and absolutely everyone but the CTO felt more comfortable with it. including the data scientists.

To me, Mercurial UI might be friendlier than Git's but it's really a moot point if it does not fit with the way people actually think/work.

Also, I sincerely think Git was getting more popular _before_ Github. Granted, it massified the adoption.


I and the dozens of other remaining Mercurial users will be severely inconvenienced by this.

Still, at least SourceForge still has Mercurial support!


Savannah allows using mercurial[0] and is likely less evil than sourceforge.

[0] https://savannah.gnu.org/maintenance/WhyChooseSavannah/


> Savannah has high project approval requirements and thus visitors can expect freedom-related qualities from projects hosted here

Is that code for "must be under GPL"? I'm a BSD man myself.


https://savannah.gnu.org/register/requirements.php

It does not explicitly give out a list on that page (to get that you need an account), but from a read it seems to say GPL-compatible which BSD is.

The repository has a very explicit goal: The expressed purpose of advancing free software that can run in free operating systems. Licenses aside, the answer to the question if a project is suited for Savannah is likely answered by looking at that goal.


I honestly do not know. I believe I had a MIT licensed project there many years ago, but I would not surprised if it's GPL only.


I wouldn't trust SourceForge at all after all the horrible stuff they've done. I know they have allegedly improved after new owners and a come-to-jesus moment, but damn, that was some shady shit.


I think you are thinking about the old and nasty sourceforge. They have since been bought and the new owners have changed what nasty old sourceforge used to be


> I know they have allegedly improved after new owners and a come-to-jesus moment, but damn, that was some shady shit.

If Facebook tomorrow started saying they're totally going to stop being creepy and got a new CEO, I wouldn't suddenly start trusting them either.


We're a small independently owned private company, and not a single person responsible for those decisions made years ago is still involved with the company. It's been over 3 years since we bought SourceForge and we reversed all the bad decisions on day 1 and never looked back. We still support Mercurial https://sourceforge.net/p/forge/documentation/Mercurial/#pub...


But why buy such a tarnished trademark which has garnered so much ill will over the years for horrible practices? Is it a form of "all PR is good PR", that it's better to have a recognized but hated name than to have a name nobody knows of?


Most people have gotten the message that things have changed at SourceForge. We bought it to redeem the name and protect free open source software.


I still avoid SourceForge links because of that annoying 'Your download will start shortly...' interstitial.


I suspect the whole post was a bit tongue-in-cheek, not just the line about "There's dozens of us. Dozens!"


sr.ht also recently added support for hg


at RhodeCode we used to have a hosted Mercurial repositories service. Actually, it was a per-customer isolated instance that we hosted on digital ocean. We have all the logic and code still here, i wonder if we should bring that back to have people host their Mercurial repositories.


Doesn't this mean BitBucket will die? Slowly, sure, but Mercurial support seemed like a key differentiator relative to GitHub.


Mercurial support was the one reason for me to still use Bitbucket: there is no other Bitbucket feature I can think of that Github doesn't already have, while Github's community is miles ahead since everyone and their dog is already there.

More importantly, Bitbucket leaves the migration to you (if I read the article correctly). Once I download my repo and convert it to git, why would I stay with the company that just made me go through an annoying (and often painful) process, when I can migrate to Github with the exact same command? And why isn't there a "migrate this repo to git" button right there?

I want to believe that Bitbucket has smart people and that this choice is a good one. But I'm with you there - to me, this definitely looks like Bitbucket will die.


They wouldn't have done it if a they had a significant user base using Mercurial, or if Mercurial usage was showing promising growth.


The article claims that virtually no new accounts are using Mercurial support at all.

I suspect that they are working on improving their build pipeline and CI tooling and it's proving to expensive (perhaps in both time and money) to get that working reliably for both Git and Mercurial.


The key differentiator on Github's side is community involvement. The UI allows you to quickly search for projects across repositories.

Bitbucket seems more geared to teams working internally; finding projects on Bitbucket is hard.

To be brutally honest, I used Bitbucket because I had a grandfathered academic account (most features free). Github offers nearly all that I had on that account now.

Github is great for "social" coding, but Bitbucket is very clearly moving towards targeting insular, corporate development tasks. But then, with the price ticket on Atlassian's products, that's hardly a surprise. B2B is their bread and butter.


yeah, I think that open source and other social products will gear towards Github. While Bitbucket will thrive in B2B space. currently, JIRA has a huge moat around it and I am not seeing that disappearing in the near future.


There's already a self-hosted version of Bitbucket which is fairly decent aside from being as slow as molasses (which, let's face it, is an 'Atlassian thing' at this point).

I used to use Jira extensively for my own internal projects (and, hilariously, my personal TODO list), but I'm moving away from that. I'm moving from my own personal server to a couple of Droplets, and I realised in moving JIRA across just how bloated it is. Most of the SCM integration tools I use are pay-for now, so for $10/yr, I'm getting less than I'd get with a Mantis or Bugzilla install.

I need to have a look for a new bugtracker. Custom Workflow support would be nice, that's really the only feature which kept me on JIRA for so long!


If it's going to die (and it might, I know I couldn't get off it fast enough), this can likely only help, not hinder.

Not every feature helps you. There's a support burden with every line of code, and the support burden for another entire version control system is probably pretty high. Every new feature you add has to either be written for that second version control system as well, or come with a disappointing article explaining why not.

If anything, this has the potential to free up resources they can spend on creating a differentiator that engages more than 1% of their customers.


It is quite funny because BitBucket started as a GitHub for Mercurial users (it had only Hg support).

Then they (after it was sold) added git support and now they are removing hg.


Unlikely. The deep integration between JIRA, BitBucket, and Bamboo is a huge selling point.


As a data point, our company that only uses git moved from GitLab to BitBucket literally about two months ago. No idea why (waaaay to low on the food chain) but I'm guessing it must have some advantages at least.


Most likely you will also see a Jira roll-out soon (unless that preceded the move to BitBucket)


We have moved from BitBucket after they had several days worth of unavailability over a year and the fact that they would regularly decline our company credit card, which would subsequently immediately block all commits to our repos.

It was a mess which was simply fixable by re-submitting the card details again.

They only had one job.


We use Bitbucket at work because they offer selfhosting. Until Github can offer this I don't think Atlassian has anything to worry about.


GitLab employee, just wanna pop in here to say we have free self-hosting too in case anyone stumbles across this comment: https://about.gitlab.com/pricing/index.html#self-managed


https://github.com/enterprise

GitHub has offered an onprem server for some time now.


Would you look at that! This was not an option about a year or two ago when we signed our contract for bitbucket...



Fairly sure GitHub Enterprise has been a thing for several years now?


It was preceded by GitHub:FI, but Enterprise has existed since I worked there in 2013. Definitely not a new capability for them and it’s actually really nice to administer, e.g. very easy high-availability setup and excellent documentation.

https://help.github.com/en/enterprise/2.16/admin/installatio...


This is terrible news.

I prefer Mercurial to Git. I intensively used both for years and I can't say that Git is any better than Mercurial.

I do think they should at least come up with a plan to seamlessly migrate existing repositories to Git. Still, shocking.


What a damn shame. I use git when I have to, hg when I get to choose. The usability and ergonomics are just so much better. I've never had any performance complaints. I chose Bitbucket over Github specifically because of Mercurial support. Unfortunately it's a business decision and they had to make a tough call.


I remember playing pool with Chris Wanstrath back in the day and he was telling me how he just started a product based on Git. I told him to bail on it and use Mercurial instead! I listed a bunch of reasons why I thought it was the best distributed VCS. I remember shaking my head a bit thinking: "Whelp... good luck with that". I probably lost that game of pool too.


OMG, sad. And I'm part of the problem:

I've always wanted to use Mercurial; I'd always found its user interface to be an improvement over git; as if it shipped with a great "porcelain" by default. I respect its ability to leak fewer implementation details while still offering plenty of power.

But I kept using git for all my projects, and GitHub with it.


I feel old. I can literally remember dozens of silver bullet technologies I was told were necessary to know ("you're not a real professional if you don't..."), and then forgotten by nearly everyone. All of these were supposed to save the world and most of these were cutting edge less than ten years ago.


I'm astonished, just because hg defined bitbucket for me. Else its other features were just OK.

Also, though I never found a reason to choose hg I had been told that it fit the Windows file system better than git. If so that wasn't enough.


Since this is likely to attract bitbucket users, I’ll toss out a question in hope someone knows:

It appears that in bitbucket enterprise cloud, there is no way for me as an administrator to prevent members of my team from making repositories public to the Internet. Is that true? If so I may need to look to on prem options, or perhaps GitHub enterprise cloud which seems to support better permissions. We deal in sensitive data so can’t risk an analyst publishing them to the net accidentally.


Strange. I would have thought that serving more niche customers would be a more sustainable business model than competing against GitHub and GitLab on their home turf.

Is Bitbucket profitable?


It’s owned by Atlassian but who knows if revenue generated exceeds costs incurred for that specific product. Somehow doubt they’re going to disclose that.

Would be nice if companies were transparent about which products and services made the most money, rather than (best case, public companies) stating earnings for the whole company and breaking it out fairly opaquely through categorizations.

On the flipside I could see this being useful information to competitors, and instructive on which parts of your business to attack.


The Software Heritage [1] was mentioned in another thread today. They seem to archive source code from most of the popular locations, but Bitbucket doesn't seem to be on the list?

If Bitbucket is planning on actually removing Mercurial repos it seems like a good idea to crawl and archive those before that happens.

[1] https://www.softwareheritage.org/archive/


I have 92 mercurial repositories at my company that I'll need to convert.


All my software is in Bitbucket for two reasons: Free private repos and Mercurial. Now that Github has free private repos and Atlassian is removing support for Mercurial, I have no remaining reason to keep my repos in Bitbucket. Sayonara, Bitbucket. You just created a Github customer.


When I picked up a DVCS years ago I initially went for Mercurial for its ease of use. It had a clean command line interface and it just clicked with me (Git still had some bits written in Perl). It worked very well for my small projects. Its hgweb worked without fuss on top of Apache (which was still popular). Bitbucket was a small time site back then (about 2008) and I mainly hosted the projects locally on a web server.

However the industry has voted by putting its weight behind Git and Git has won. It has caught up usability-wise. Its performance is miles ahead of Mercurial. While its underlying model is not straightforward to grok it enables great work flows.

Honestly I'm happy with Git and never looked back.


Only reason I use Bitbucket is because of Mercurial. I guess that's what you get for using centralized services. The funny thing is that both Git and Mercurial was designed to be decentralized! But we humans are social creatures, and Github is like Facebook for invert's - instead of posting pictures of your acquaintance you post your software projects. Stars are the likes ... So in order to fully decentralize, the human/social bit also need to be decentralized. But there is also the convenience, while setting up Git and Mercurial hosted repositories is straightforward, I can understand why dev's choose to use a service instead, especially when it's free.


When clicking on the link to "A Community thread to discuss conversion tools, migration, tips, and offer troubleshooting help", I see:

Article not found

The article you are trying to access is not available.

It may have been deleted or marked as spam.


I am annoyed at this news. v1. Bitbucket == Mercurial v2. Bitbucket == Mercurial|git v3. Bitbucket == git However, GitHub is better at git, so now GitHub > Bitbucket

May bitbucket and it's management forever have it sheets and stocks shorted. They deserve it.

Since I want my repos' outsourced and I'm being forced to use git, I am moving to GitHub.

Define: git - https://www.google.com/search?q=what+is+a+git


Guess I'm taking my money and going elsewhere, then.

Several things seem really odd to me:

  - They are ditching one thing that was a safe harbor from github.
  - No migration path to Git inside bb service. 
    If I am going to migrate outside bb I might as well move away completely.
  - Armageddon-style wholesale destruction of the old repos.
    Could have left the read-only repos on a separate server. Or even just a tarball.
It just looks so disorderly and thoughtless...


Damn, this is disappointing. I've long preferred hg over git but developer preference has clearly moved to favor git. I like using mercurial queues for managing local config changes but I guess I'll have to get better using `git stash`. I hope bitbucket provides some tools to easily convert repos from hg to git. Frankly, though, I'll likely just move from bitbucket now.


For anyone looking to jump ship, check out invertbucket (https://hg.sr.ht/~sircmpwn/invertbucket), a script which automates the transfer of mercurial repos from Bitbucket to Sourcehut. Support for transferring tickets and pull requests should be coming soon as well.


A friend of mine is a core contributor to Mercurial. He is... well, I suppose "livid" is as close a descriptor as any.


Enjoy your monoculture.



Is there any feature in mercurial that git doesn't have? Is there some plugin to allow mercurial users keep using the client with a git remote repository (like the one for using git with svn)?


1) hg absorb

2) hg-git exists, and there's other things afoot that should be better


Just looked at hg absorb. It seems like a very useful feature but I understand it is an extension by Facebook. Can't someone make a similar extension for git?

...and I just found it: https://github.com/tummychow/git-absorb


As a daily hg-git user, could you elaborate on (2)?



That would be helpful

I use hg-git to put all my Mercurial based projects on Github.

But the last OpenSUSE update installed Mercurial 5, but left the old hg-git for Mercurial 4. Now it does not work anymore.


On Windows it is broken since TortoiseHG 4.5.2


TortoiseHG is really cool

I used to use it all the time on linux.

Unfortunately the OpenSUSE update also removed it. Completely, it is not even listed in the package management anymore.

No one wants to maintain non-mainstream software


Changeset evolution for starters.


You mean the thing that was only suitable for real world use by in-the-wild development teams last year? Something no repo provider really fully supports even to this day?

From HG's own documentation (https://www.mercurial-scm.org/wiki/ChangesetEvolution):

>While well on the way, the full implementation of the changeset evolution concept is still in progress.

HG's entire system requires far more investment in the tool than git will ever ask of you. And you probably don't need the feature in the first place. I consider changeset evolution a nifty feature, but it's also a devop smell in my book.


Changeset evolution has had the "beta" label for way too long. I started using it years ago and it was fine.

As far as smells go, its whole purpose is to make editing history less "smelly" than git's rebase -i followed by force push.


> I started using it years ago and it was fine.

You are not a full blown development team, and beta software works for many people. That doesn't mean it's ready for prime time.


No. Evolution was usable since 2015 at least. Supported by Bitbucket and others.

Evolution requires no effort whatsoever to maintain.


Revsets: a single, uniform syntax for querying and selecting commits. Used throughout Mercurial and accepted almost everywhere that a subcommand takes one or more commits as a parameter.

https://www.mercurial-scm.org/repo/hg/help/revsets


A disaster for me, I've got dozens of hg repos over there. Do they support an automated conversion? If not, probably no reason to use bitbucket any longer.


I'm in the same boat. And Mercurial support was the key differentiator for me, I'll probably convert the repos to git (hg is almost sure to die after this) and move to GitHub in the process, including the git repos I have on Bitbucket.


It seems that Bitbucket and GitHub are trying to emulate GitLab’s strategy of being a one-stop tool rather than just version control.


The opposite is true actually, Bitbucket was bought by Atlassian in 2010 to make Atlassian the one-stop shop, a strategy GitHub and GitLab are emulating (GitLab launched in 2011).


Seems to me that one-stop shop is very different from one-stop tool. GitLab is aiming for the latter, whereas Atlassian (at least when I was using those tools) seems much less integrated.

Jira may be the most comprehensive issue tracker (which isn't necessarily attractive -- but then they have Trello now, too), but on the version control and CI front I don't think Atlassian will have an easy time competing against Azure/GitHub/GitLab.


I think the ALM market was defined and alive before any of these companies even existed. It is natural evolvement of these companies.

The common user just realized he or she needed more and demanded them for free.

The Enterprise market had DevOps features long before DevOps as term existed.


Anyone knows what happened to Spolky's hginit.com ? It used to be one of the most accessible Hg tutorials out there.


I also miss hginit.com. I've been referring new devs to https://web.archive.org/web/20180924182907/http://hginit.com...

I guess hginit.com disappearing was a signal of things to come.


I don't know what happened to it, but I was just searching for it as well... I found it on the Wayback Machine. Is good.

https://web.archive.org/web/20170320142857/http://hginit.com...


Another casualty of the expanding Github empire.


Mercurial is officially dead.


This is disappointing. Bitbucket is the premier place to host free private mercurial repos. Just look at the hosting page on the mercurial website. There is literally not a single other place for free private hosting. There may be some smaller ones out there I'm not aware of.

Hacker news, question: Have you ever tried mercurial? Don't you like to save keystrokes? Isn't `hg com` easier than `git commit`? Isn't `hg pul` easier than `git pull`?

Is there any way to shorten the amount of keystrokes to use git?


> Is there any way to shorten the amount of keystrokes to use git?

Sure, you can just set up aliases in your shell and in git. Set an alias in your shell for git → g and in git for commit → c and you can commit with `g c`.


There's a really good starter set in the Git manual:

https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases

I'm so used to "git co" and "git br" at this point (which are effectively analogues of the same commands on Hg) that I have to think for a minute when I SSH into a machine which doesn't have these set up.


Awesome, wasn't aware of git aliases. Thank you.


Just be careful that if you define an alias that shadows a built-in command, your alias will be (silently?) ignored. Mostly a problem if a future version of git adds a command and clobbers an alias that used to work.


> Is there any way to shorten the amount of keystrokes to use git?

Others have mentioned git aliases. But also, git recognizes some shortforms too. E.g. git rebase --con works the same as --continue. Doesn't work in hg.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: