我看到很多答案,这取决于作者在听到一个或另一个SCM时的感受。其他人则说这全是运气。我相信好运可以追溯到历史上。
我将谈论历史。
为了解决同一问题,同时创建了Git和Mercurial。那时,Linux内核被迫停止使用BitKeeper那时,它是专有的分布式SCM,已经使用了3年。原因是BitKeeper背后的公司BitMover的首席执行官Larry McVoy停止向Linux开发人员免费提供他的软件,因为Linux社区内部有人对其进行了反向工程。
莱纳斯·托瓦尔兹(Linus Torvalds)对已经存在的问题不满意,随后开始研究一种全新的SCM,他很快将其称为Git。此后不久,Matt Mackall出于类似原因启动了Mercurial项目。
经过一段时间分别开发这些项目后,Matt Mackall展示了他的SCM的高级版本,并以某种方式对其进行了基准测试,并将其与Git(本身只有几周的历史)进行了比较。Linus考虑使用它代替Git进行内核开发,但是当他意识到Mercurial正在使用Changesets记录修订版本时放弃了这个想法。他担心这与BitKeeper的工作方式太接近了,他当然不希望有任何能让人说“他们建立了BitKeeper克隆”的东西。
因此,Git代替Mercurial用于内核开发,但两者在技术上都相关。最终结果是,Git最初是在设计要使用的地方实际使用,而Mercurial并没有找到它的第一个大型FOSS用途。由于它具有出色的设计,并且由于Matt Mackall的毅力,它最终成名并被用于大型现实项目。
今天,他们都很有名。哪一个最著名是不可能说的。Google Code直到最近才集成了Git,而Mercurial则由来已久。许多真正大而著名的项目都使用其中之一。
我想我的意思是,当您开始一个项目的原由消失时,很难获得人气,但仍然可行。
Bazaar是另一个在GNU世界中非常有名的SCM,但除此之外,它并不多,因为它的建立是为了满足GNU社区。软件通常会到达其创建者想要去的地方,而且没有进一步发展。
另一方面,分布式SCM显然是赢家。我看不到有很多用途广泛的非分布式SCM。