That's why Facebook chose to just fix the slow parts of hg[1], rather than fix the slow parts of git, to build a VCS which would scale with its codebase.
[1]: https://code.fb.com/core-data/scaling-mercurial-at-facebook/
On the other hand, Google seems to successfully use Git in the same way.
Also parts of Google, like Chrome, Android, and Go, do use git.
Rust runs on Windows, Linux, Mac OS X, FreeBSD and NetBSD. If you are on one of these platforms and are seeing this then please report an issue, along with the following values:
navigator.platform:
SunOS i86pc
navigator.appVersion:
5.0 (X11)
To install Rust, if you are running Unix,
run the following in your terminal, then follow the onscreen instructions. curl https://sh.rustup.rs -sSf | sh"
...and running that gives: curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
And I am running UNIX, a true, AT&T System V, Release 4.0 UNIX: Solaris 10 on i86pc.I don't want to have to give up Mercurial just because someone somewhere is trying to be trendy by rewriting parts of it in Rust, because he thinks that's all the rage now.
Actually, after a bit more research it looks like Solaris is a lower tier platform, which means there are no prebuilt binaries that are available, but it should work if you build it yourself.
What you're saying is that if I had to upgrade to a newer version of Mercurial which used software written in Rust, I'd have to bootstrap and port an entire programming language, just to use a newer version of my revision control software?
I simply do not find this to be true. I've used git for years and tried to use hg to participate in a project and I straight-up just could not understand its branching model and how exactly I was supposed to use that tool. I ended up maintaining my work in a git repository and very carefully doing individual commits and a push in the hg repository only at the very end of a long work period. My daily work remained in git because I could not for the life of me understand how people work with that tool with regards to local branches and squashing. (Which, sorry, I cannot do without.)
Local branches are fairly simple - use the phase command to mark your changesets as secret.
As for squashing... It's more complex, and not so easy, though doable, because Mercurial discourages it. (Though the solutions are on their wiki [0], and various extensions can simplify it for you.)
[0] https://www.mercurial-scm.org/wiki/ConcatenatingChangesets
We use this ALIAS:
histamend = !$HG histedit $(hg log -l1 -r '(draft() or secret()) and branch(.)' --template={rev})
This shows you option to drop/squash re-order/edit messages on all draft or secret commits in the current checkout branch
There isn’t a Git workflow that can’t be done using Mercurial; in fact, the Mercurial team from what I’ve read and listened to via podcasts, has intentionally added features to accommodate Git-style workflows, since developers obviously like and are using them.