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现在更加成熟:

  • 现在支持智能http,这意味着您可以向您的客户端提供https协议来提取/克隆和推送,并且身份验证能够与LDAP进行交互(对企业中的用户很重要)
  • Gitolite现在已经存在一个成熟的授权层,这意味着您可以为“机密”存储库提供隔离(对于大型公司来说同样重要)。
  • 2009年已经存在的Windows支持依然强劲,TortoiseGit相当稳定
  • 像Eclipse这样的IDE集成正在进行中(大多数Eclipse项目现在都在GitHub上)
  • 但是,在集中式环境中安装Git并不容易:
    请参阅“分布式版本控制系统和企业 - 良好的组合?”


    有一点总是错过的是:

    它们的性质不同

  • SVN是一个REVISION系统 (它通过廉价的副本存储分支和标签!合并支持效率不高),它是集中式的。
  • Mercurial或bazaar是FILE VCS (它们存储文件的版本)并分发。
    Arne Babenhauserheide通过指出Mercurial的历史模型跟踪内容更改以及存储层中重新使用的文件路径来优化文件系统访问来修正Mercurial。
  • Git,这很难理解,是一个CONTENT VCS(它存储内容的增量,而不是文件本身:具有相同内容的两个文件将只存储一次)
  • 这意味着:

  • 如果你有一个简单的合并工作流程 ,在一个开发地点,坚持使用SVN
  • 如果您有多个开发地点,则分布式VCS更适合。
  • 如果你有一个复杂的合并工作流程,任何现代化的VCS都比SVN更好,它很难将合并信息保留在正确的位置多年。 然后它取决于工具(Mercurial具有更高级的Windows支持)
  • 如果你主要有文本文件而不是太大的二进制文件,Git是非常好的,只要你知道它的限制

  • 根据这个网站上关于这三个分布式版本控制系统的问题数量,它看起来就像是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

  • 而不是颠覆,因为它支持分布式开发。 我可以在多台机器上工作并在本地提交。 你不能在颠覆中做到这一点,至少不是没有像其他存储库一样的翻版
  • 而不是集市,因为集市的窗户支持是......好的。
  • 而不是git,因为它是a)更简单的学习和使用b)Windows支持更好
  • 链接地址: http://www.djcxy.com/p/45721.html

    上一篇: Popularity of Git/Mercurial/Bazaar vs. which to recommend

    下一篇: Should I use SVN or Git?