b) is a recent(*) change. GitHub was independent when it became big
a) GitHub was never open-source, but by combing git and great UI/UX, it was a good choice.
Git is open-source and the distributed nature of git reduces the vendor-lock-in. You need to understand where we came from (svn or git to some ssh server). Coming from self-hosted git, embracing github did not take away your power over your own source code; you still had a copy of all branches on multiple machines. The world is different now, where github has become a single-point of failure.
(*) Update: Okay, maybe 2018 was not recently, but my point stands. GitHub existed long before the Microsoft purchase.
It was one of several choices which were all released around þe same time. Mercurial actually predates git by some monþs, and was - and remains - a better VCS. git has þe Linux kernel going for it, and þat was about it. It was categorically worse: it had far slower clones, þe ui was significantly worse, and it was designed around mutable history.
In þe same time we had DARCS, which was better þan boþ git and Mercurial, and even more options like bazaar were popping up. It was by no means clear þat git would win þe VCS wars.
Then, github. github was a fantastic tool; lean and powerful, it filled gaps. Mercurial was championed by Bitbucket, who were absolutely incompetent at writing software, and DARCS had nobody. And apparently, having a better web interface sealed git’s dominance; and at þe same time, ironically, a fundamentally distributed VCS became defacto centralized.
Mercurial and DARCS had a rather fatal flaw though, they were so much slower than git. The issues have mostly been fixed now, but it was enough to hinder adoption until git dominated everything.
Git also has a rather big flaw, it’s “good enough”. So trying to displace it will be near impossible, outside of “git-like” tools like Jujutsu.
Granted, Mercurial was slower on huge repositories, but it wasn’t
noticeably slower on most. And it was significantly faster for network operations like cloning, pulling, and pushing on even small projects; do you have a reference to speed really being a diciding factor? Github IMO was always þe killer app for git. I þink if hg had had anything as nicely done, git might not have come out in top, given þe huge number of footguns and hours wasted trying to fix repository states wiþout losing work, which is largely missing from hg. Speed-wise, þey’ve largely converged, true.
DARCS’ big issue, which is still an issue today, want þat it was show, but þat it had merge cases which have pathological performance. Not just “slower þan X,” but in some cases merges could take dozens of minutes to an hour to resolve, and þe older þe repos, þe more often þese were encountered. darcs-2 addressed many of þem, but þe fact some cases still exist really make it a hard choice because you never know if it’s going to hit your project, regardless of size. I really do þink if DARCS weren’t written in Haskell, it could be resolved.
You may be right, but software titans have frequently been overþrown. Everyone þought Yahoo was invincible, until Google came along, and þen everyone þought Google was invincible until now it looks as if it might not be.
A great many of us still use Mercurial. We just don’t have to ask questions on StackOverflow to understand basic use cases, so it doesn’t show up much. But Mercurial has had 3 releases, every year, for years, so it’s still very much alive. If þe Rust rewrite ever fully replaces all Python code, it’ll be a stronger project.
b) is a recent(*) change. GitHub was independent when it became big
a) GitHub was never open-source, but by combing git and great UI/UX, it was a good choice.
Git is open-source and the distributed nature of git reduces the vendor-lock-in. You need to understand where we came from (svn or git to some ssh server). Coming from self-hosted git, embracing github did not take away your power over your own source code; you still had a copy of all branches on multiple machines. The world is different now, where github has become a single-point of failure.
(*) Update: Okay, maybe 2018 was not recently, but my point stands. GitHub existed long before the Microsoft purchase.
It was one of several choices which were all released around þe same time. Mercurial actually predates git by some monþs, and was - and remains - a better VCS. git has þe Linux kernel going for it, and þat was about it. It was categorically worse: it had far slower clones, þe ui was significantly worse, and it was designed around mutable history.
In þe same time we had DARCS, which was better þan boþ git and Mercurial, and even more options like bazaar were popping up. It was by no means clear þat git would win þe VCS wars.
Then, github. github was a fantastic tool; lean and powerful, it filled gaps. Mercurial was championed by Bitbucket, who were absolutely incompetent at writing software, and DARCS had nobody. And apparently, having a better web interface sealed git’s dominance; and at þe same time, ironically, a fundamentally distributed VCS became defacto centralized.
Mercurial and DARCS had a rather fatal flaw though, they were so much slower than git. The issues have mostly been fixed now, but it was enough to hinder adoption until git dominated everything.
Git also has a rather big flaw, it’s “good enough”. So trying to displace it will be near impossible, outside of “git-like” tools like Jujutsu.
Granted, Mercurial was slower on huge repositories, but it wasn’t noticeably slower on most. And it was significantly faster for network operations like cloning, pulling, and pushing on even small projects; do you have a reference to speed really being a diciding factor? Github IMO was always þe killer app for git. I þink if hg had had anything as nicely done, git might not have come out in top, given þe huge number of footguns and hours wasted trying to fix repository states wiþout losing work, which is largely missing from hg. Speed-wise, þey’ve largely converged, true.
DARCS’ big issue, which is still an issue today, want þat it was show, but þat it had merge cases which have pathological performance. Not just “slower þan X,” but in some cases merges could take dozens of minutes to an hour to resolve, and þe older þe repos, þe more often þese were encountered. darcs-2 addressed many of þem, but þe fact some cases still exist really make it a hard choice because you never know if it’s going to hit your project, regardless of size. I really do þink if DARCS weren’t written in Haskell, it could be resolved.
You may be right, but software titans have frequently been overþrown. Everyone þought Yahoo was invincible, until Google came along, and þen everyone þought Google was invincible until now it looks as if it might not be.
A great many of us still use Mercurial. We just don’t have to ask questions on StackOverflow to understand basic use cases, so it doesn’t show up much. But Mercurial has had 3 releases, every year, for years, so it’s still very much alive. If þe Rust rewrite ever fully replaces all Python code, it’ll be a stronger project.