Mercurial 和 Git (2020) 有什么区别?

What is the difference between Mercurial and Git (2020)?

我在 Whosebug 上找到的这个问题的唯一答案是 2012 年的,它的评论认为它已经过时了,所以我正在寻找更新的答案。

我在 Git 方面只有一点经验,但阅读 Mozilla 贡献文档后我了解到 Mercurial 的存在,据说它可以做同样的事情。

每个系统的优缺点是什么?是否存在应该选择一个而不是另一个的情况,还是个人偏好?

这是旧的 Whosebug 线程:

I only have a bit of experience in Git

对于不是版本控制工具的专家,Git 和 Mercurial 大部分相同。

它们的诞生是为了解决托管 Linux 内核源代码的相同目的,因此它们必须处理好一些特定的用例。一个重要的是去中心化。所以两者都是DVCS。

所以,从大局来看,你可以认为他们在做同样的事情。

但是因为这 2 个不同的项目,使用 2 种不同的技术(Python 用于 Mercurial 和 c 和 shell 脚本用于 Git),它们最终会有很多小差异很难总结,有人会爱有人会恨。

Is there a situation where one should choose one over the other or is it personal preference?

理论上,对于你自己的项目,你可以选择你想要的。 但不要忘记,版本控制与社交网络非常相似,大多数时候,您将不得不选择大多数人之前选择的内容。

尤其是当您想为某些项目做出贡献时,或者当您的团队中的大多数人已经知道其中一个项目时,...

而且,不得不承认在这场比赛中,Git变得更受欢迎。

一个例子是托管提供商 'Bitbucket' 的情况,它是一开始使用 Mercurial 作为其主要 VCS 的伪造,但停止使用它,现在只提供 Git.

Mercurial 在某些地方仍然很流行(Facebook、Mozilla),但与 git 相比很少...