Git / Mercurial / Bazaar的流行度与推荐
根据这个网站上关于这三个分布式版本控制系统的问题数量,它看起来就像是Git
或者最可能的是三者的结合。 (比方说,这个网站上的流行度相当于普及度。)以下是数字:
| Jun 2009 | Jul 2010 | Jul 2011 | Jul 2012 | Jul 2013 | Jul 2014 | Jul 2015 | Jul 2016 | Jun 2017 --------------------------------------------------------------------------------------------------------------- [svn] | 2353 | 5323 | 9028 | 12687 | 15587 | 18846 | 21209 | 23037 | 24692 [git] | 726 | 3725 | 9225 | 17523 | 27862 | 41478 | 55315 | 71056 | 86958 [mercurial] | 169 | 1120 | 2765 | 4221 | 5230 | 6030 | 6651 | 7134 | 7524 [bazaar] | 50 | 159 | 252 | 351 | 425 | 483 | 506 | 525 | 534
具有三种竞争但基本相同的开放源代码产品可供选择并不完全令人满意。 我个人使用Git,其他两个人都很好。 但是当谈到推荐一个系统而不是其他系统时,我想问一下:我们可以开始安全地推荐一个系统吗?
从2009年中期开始的评论 :Subversion最近的历史流行清晰地反映了问题的数量,表明至少有一小部分水银向Meritial或Bazaar转移。
从2010年中期的评论 :看看Mercurial数字的巨大增长。 显然,只有两个数据点不足以显示趋势,但看起来Git和Subversion在很大程度上是根深蒂固的,Mercurial看到了很多增长,而Bazaar一直保持相对安静。
简短的评论,2011年中期 :我们可以称Git为赢家吗? :)
不,我接受这样的观点,即问题的数量不等于受欢迎程度。 数字肯定是强大的,但。
2011年11月更新:
与2009年相比,Git现在更加成熟:
但是,在集中式环境中安装Git并不容易:
请参阅“分布式版本控制系统和企业 - 良好的组合?”
有一点总是错过的是:
它们的性质不同 。
Arne Babenhauserheide通过指出Mercurial的历史模型跟踪内容更改以及存储层中重新使用的文件路径来优化文件系统访问来修正Mercurial。
这意味着:
根据这个网站上关于这三个分布式版本控制系统的问题数量,它看起来就像是Git
关于SCM 流行度 - 请参阅以下StackOverflow问题:Free RCS / SCM / VCS系统是否有可用的流行度/使用情况统计信息? 在这里,我们有一些问题,比如什么样的一组忽略文件用于特定种类的项目,哪些是SCM不可知的,但是被要求提供Git(并且使用'git'标签),因为它是问问题的人使用的。
关于Git 更困难 (因此对于SO有更多疑问) - 当然,Git的学习曲线陡峭。 它也使用了几个(完全)独特的概念,如分段区域(索引)或所有分支都是平等的,这些概念负责其权力,但起初可能很难正确(特别是如果其他SCM来自其他SCM) 。 Git UI也不完全一致(虽然它变得更好),因为它是增长而不是开发的; 它负责其功能,但可能导致用户界面不理想。
关于Git具有更多功能 - 您将不得不检查有多少SO问题关于Git的高级/不常见功能。 然而,您应该意识到,开源项目互相借鉴想法,或者具有独立开发的类似功能:一个例子是通过平分(搜索)历史记录来查找错误,以提交引入了(据我所知)开发的错误首先在Git中,然后在Bazaar中实现插件,并在Mercurial中实现第一个扩展和当前的核心功能。 另一个是交互选择片段的变化提交,受Darcs行为的启发。 另外一个则是Git的捆绑理念,从Mercurial的类似概念中借用。
然而,另一个可能会导致大量SO问题的原因可能是缺乏良好的文档 ......尽管现在GIT用户手册(与Git分发)和Git社区手册(可在Git主页上找到)变得更好。 尽管如此,Git的文档还是比Subversion版本控制Subversion(也称为svnbook)和Mercurial:权威指南(也称为hg-book)更糟糕,而且人们不会阅读有时会在提问StackOverflow之前提供文档。
具有三种竞争但基本相同的开放源代码产品可供选择并不完全令人满意。 我个人使用Git,其他两个人都很好。 但是当谈到推荐一个系统而不是其他系统时,我想问一下:我们可以开始安全地推荐一个系统吗?
那么,Git和Mercurial是在几乎同一时间开始独立开发的,它们终止了BitKeeper的免费授权,以供Linux内核开发人员使用,以取代它。 Subversion没有像集中式SCM那样的问题,缺乏对合并跟踪核心的支持; 这使得它完全不适合Linux内核的大部分分布式开发模型。 Bazaar可能太慢了(至少在那时),并且在集中的一面(我猜)。
Git更强大(在我看来),Mercurial更简单(在人们看来)和更便携(Python); Git是可脚本化的,基于允许独立重新实现的数据模型(参见例如JGit,用Java编写的git),而Mercurial具有用于编写扩展的Python绑定,并且主要基于允许更改底层存储库格式的API(revlog - revlog-ng )......但这只是我的假设。 他们填补略有不同的利基。
除了没有选择被认为是好东西? 我们有KDE,我们有GNOME和XFCE(以及其他窗口管理器和桌面环境); 我们有Emacs和Vim(和其他程序员的编辑); 我们有基于rpm的(例如Fedora Core,Mandriva,SuSE)和基于deb的(Debian,Ubuntu)和基于tgz的(Slackware)和基于源代码的(Gentoo)发行版; 我们有KWord,AbiWord和OpenOffice.org ......我们有Git,Mercurial和Bazaar。
我使用并推荐mercurial
上一篇: Popularity of Git/Mercurial/Bazaar vs. which to recommend