10 ms·
It's funny to see how the whole world concentrates on this Git thing, while there is a treasure trove called Mercurial. Mercurial was made for humans. It is se
by garganzol 7y ago
It's funny to see how the whole world concentrates on this Git thing, while there is a treasure trove called Mercurial.
Mercurial was made for humans. It is seriously convenient and productive. Something I cannot say about Git, which more reminds me of an adhoc job.
I use both Git and Mercurial on daily basis. But my preference goes to Mercurial: it is just more sane in a big way. It is clearly a piece of art and love.
- ChrisSD 7y agoAnd yet people overwhelmingly chose Git. Why is that?
- tehlike 7y agoNetwork effect and first mover advantage.
- ChrisSD 7y agoBut they were both released at around the same time. Or at least near enough that they were both serious contenders for awhile.
- gnud 7y agoMercurial was a bit slow in the first years. It's still probably slower for huge repos (I havn't checked), but I doubt it will bother you much nowadays. I used Hg before Git professionally, because when they were both new, Hg had _much_ better Windows support.
- dtech 7y agoAt this point, network effect
- hiccuphippo 7y agoLinus Torvalds made it. That at least got me to look into it. Then saw it was better than svn and never looked back. Or sideways, so I missed mercurial.
- flohofwoe 7y agoIMHO: Because Github just came at the right time for a free "no strings attached" project hosting solution when Sourceforge decided to become evil. That was the reason why I switched to Github anyway. That Github used this strange version control system cobbled together by the Linux kernel devs for their specific workflow was a bit weird, but that wasn't a showstopper for moving to Github. After all it was just one amongst many version control systems, and a VCS shouldn't be the centre of the universe anyway, over time Github would probably offer different systems anyway after they become more popular. Nobody expected that Github was essentially a Trojan horse ;)
- kasey_junk 7y agoIt’s even more specific than that. GitHub chose “free public repos, paid private repos” as their business model and git as their DVC. Bitbucket chose the opposite. GitHubs model is incredibly more viral and thus git won (sadly IMO).
- mixmastamyk 7y agoInteresting, would like to hear more about why that is?
- Siecje 7y agoBitbucket had free private repos and free public repos.
- workthrowaway 7y agogit was faster. i was using mercurial and svn before git. git was hard to learn but i went with efficiency and speed over convenience. also, if you have a good shell or a good GUI you don't need to memorize git commands. and if you are not a game developer uploading large binaries, git is the best around.
- wokwokwok 7y agoI used both at the same time at work for about 2 years, and mercurial was worse. Hg was slow, and the (custom) python plugins around it we used were frustrating (specifically, we had a build pipeline that used the mercurial module in python, along with an arcane scons thing) and there were some specifically irritating pain points like bookmarks and shelve that didn't seem to work properly. I mean, I get it, network effect... but all I can say is at least some people (like me) tried both and pick git on technical merit.
- rimliu 7y agoMany will not admit it, but git is just better. Back in 2008 I made a presentation about DSCVS where I introduced git, mercurial and bazaar, and my advice for fellow programmers was "use git".
- libria 7y agoNo clue. I thought for sure Mercurial would come out ahead, it had some proponents: * Bitbucket provided unlimited free private repositories and they were exclusively Mercurial. Github had limits for private repos. * Google evaluated both and preferred Mercurial for code.google.com http://www.saturngod.net/articles/dvcsanalysis-support-analysis-of-git-and-mercurial-project-hosting-on-google-code/ http://www.saturngod.net/articles/dvcsanalysis-support-analy.... * Fogcreek (creators of Trello and Stackoverflow) picked Mercurial to power Kiln Early on, both tools had different advantages but they evolved toward each other making the choice more about flavor and popularity. My guess is * git was strongly associated with Linus so it won that crowd handily * Github had a stronger association with open source than Bitbucket (dunno why though). Maybe it all came down to marketing. <-- there's a startup lesson
- jhasse 7y ago> * Github had a stronger association with open source than Bitbucket (dunno why though). Maybe it all came down to marketing. <-- there's a startup lesson Maybe because it was bought by Atlassian.
- chipotle_coyote 7y ago> Maybe because it was bought by Atlassian. Nope! Bitbucket had the "free private, paid public" model from the start. IIRC, Atlassian actually changed the model to allow unlimited public repositories after they purchased Bitbucket. It's possible that if BB had started with this model, they'd have been a much stronger competitor.
- billfruit 7y agoAs others have mentioned before, one possible reason could be performance, git commands work near instantaneously even for very large repos, perhaps mercurial was not able to offer a similar experience.
- DougBTX 7y ago> Github had a stronger association with open source than Bitbucket (dunno why though). Early on GitHub gave out free public repositories, but Bitbucket gave our free private repositories. Working in public is aligned much more closely with open source than working in private is.
- deleted 7y ago[deleted]
- philpem 7y agoThe ease of use is a big thing for me. I find Git a bit arcane -- it's better than it used to be (around the Hg 0.9 era), but it's still quite bad. Hg has this way of actively pushing you towards the safe way of doing things (e.g. if you try to change history). Git will let you blow away a month's work if you mistype a command. I get the impression Git is the popular option because it underpins the Linux Kernel and Android development processes. That means it's popular, not that it's perfect for every use case. Mercurial is especially powerful when given to developers who know Subversion. A ~20% productivity boost just from being able to losslessly branch off and merge back without worrying about stepping on other devs' feed. Another team found out about it and were interested, but ultimately deployed Subversion -- because having one authoritative repository in one place was important to their process.
- bschwindHN 7y ago> Git will let you blow away a month's work if you mistype a command What's the command to mistype?
- fnord123 7y agoMaybe git push -f my-branch I can't imagine having a month of work on a local machine that hasn't been pushed anywhere so it has to be something about pushing.
- airstrike 7y ago> Git will let you blow away a month's work if you mistype a command. Fortunately, that can always be undone with another command
- MikusR 7y agoAt least on Windows Mercurial doesn't support filenames written in various languages. Git does. So Mercurial was made for one billion people while git for the rest 6.5 billion of us.
- ptx 7y agoWhat does "written in various languages" mean? Mixing multiple legacy encodings in one filename? Unicode filenames work fine on Linux (I just tested it with Chinese) and I would be very surprised if they didn't on Windows.
- ChrisSD 7y agoThe problem, as I understand it, was filenames were read and written as bytes. That's fine if everybody is on the same platform but it doesn't always work when moving between, for example, Linux (UTF-8) and Windows (UTF-16). I don't know if that's still an issue.
- chronial 7y agoUnfortunately, on Linux, filenames are actually bytes, not utf-8.
- ChrisSD 7y agoWell yes and on Windows they are a sequence of 16bit values, not utf-16. My point was the encoding of filenames differ. So you can't do a byte-for-byte copy and expect the same results across platforms. As an aside, it'd be perfectly legitimate for Mercurial (and git) to reject filenames that aren't representable in unicode.
- ptx 7y agoHm, the Mercurial wiki does mention that's it was/is a problem on Windows. I was surprised because we've been using it for years at work, sharing repositories between Linux and Windows, and we have never been bitten by this. Maybe the latin-1 subset of Unicode works? Or all the files we worked on just happened to have ASCII names (despite us being mostly non-Americans).