Git / Mercurial / Bazaar的流行度与推荐 [英] Popularity of Git/Mercurial/Bazaar vs. which to recommend

查看:109
本文介绍了Git / Mercurial / Bazaar的流行度与推荐的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据这三个分布式版本控制系统的问题数量来看,似乎Git要么更加流行,要么



  1. 更困难(因此需要更多问题),或者
  2. 具有更多功能(因此需要更多问题)。

或者最可能的是三者的组合。 (比方说,这个网站的受欢迎程度相当于普及程度。)以下是数字:

 
| 2009年6月| | 2010年7月| 2011年7月| 2012年7月| | 2013年7月| 2014年7月| 2015年7月| 2016年7月| 2017年6月
-------------------------------------------- -------------------------------------------------- -----------------
[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最近的历史流行清楚地反映了问题的数量,表明至少在Git上的水平或小市场小额小费。

2010年年中的评论
看看Mercurial数字的巨大相对增长。显然,只有两个数据点不足以显示趋势,但看起来Git和Subversion在很大程度上是根深蒂固的,Mercurial已经看到了很多增长,并且Bazaar保持相对安静。

2011年年中简短评论
我们可以直接致电Git获胜者吗? :)不,我接受这样的观点:问题的数量与流行度不相等。数字肯定是强大的,但。

解决方案

2011年11月更新: 与2009年相比:


  • smart http ,这意味着您可以向您的客户端提供https协议来提取/克隆并推送,并且身份验证能够与LDAP进行交互(重要对于企业中的用户)

  • 成熟的授权层现在与 Gitolite ,这意味着您可以为机密存储库提供隔离(对于大型公司很重要)。
  • 2009年已经存在的Windows支持仍然很强劲,和 TortoiseGit 非常稳定

  • 与像Eclipse这样的IDE正在进行中(大部分是Eclipse项目现在在GitHub上)



然而,在集中式环境中安装Git并不重要:

请参阅 分布式版本控制系统和企业 - 一个好的组合?






一直缺少的一点是:

它们本质上是不同的




  • SVN是一个 REVISION系统(它通过廉价的副本存储分支和标签!

  • Mercurial或bazaar是 FILE VCS (它们存储文件的版本 )和分发。

    Arne Babenhauserheide 通过指出历史模型,带有文件,清单和变更集。

  • Git,这是很难掌握的,是一个 CONTENT VCS (它存储内容的增量,而不是文件本身:具有相同内容的两个文件将只存储一次)



即:


  • 如果你有一个简单的 合并工作流 ,在单个d如果您有多个开发地点,则坚持使用SVN

  • ,分布式VCS更适合。如果您有复杂的合并工作流程,任何现代VCS都比SVN更好,它努力保持合并信息在多年的合适地点。然后它依赖于工具(Mercurial具有更高级的Windows支持)
  • 如果您主要使用文本文件而不是太大的二进制文件,那么Git非常好,只要您知道 限制 。 >

Going by the number of questions on this site for these three distributed version control systems, it seems like Git either

  1. is more popular, or
  2. is more difficult (hence requiring more questions), or
  3. has more features (hence requiring more questions).

Or most probably a combination of the three. (Let's say that popularity on this site equates to popularity at large.) Here are the numbers:

                | 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

It's not entirely satisfactory having three competing yet largely equivalent open source products to choose from. Personally I use Git and I'm fine with the other two. But when it comes to recommending one system over the others, I'd like to ask: can we start recommending one safely yet?

Comments from mid-2009: The recent historical popularity of Subversion is clearly reflected by the number of questions, indicating at least a small tipping of the scales towards Git over the Mercurial or Bazaar.

Comments from mid-2010: Look at that huge relative increase in Mercurial numbers. Obviously only two-data points aren't enough to show a trend, but it looks like Git and Subversion are largely entrenched, Mercurial has seen a lot of growth, and Bazaar has remained relatively quiet.

Brief comment, mid-2011: Can we just call Git the winner? :) No, I accept the argument that number of questions is not equivalent to popularity. Numbers sure are strong, though.

解决方案

Update November 2011:

Git is now much more mature compared to 2009:

  • smart http is now supported, which means you can offer to your client https protocol to pull/clone and push, with authentication able to interface with an LDAP (important for user in an enterprise)
  • A mature authorization layer now exists with Gitolite, which means you can provide isolation for "confidential" repository (again, important for large companies).
  • The Windows support which was already there in 2009, is still going strong, and TortoiseGit is quite stable
  • The integration with IDE like Eclipse is in progress (most of Eclipse projects are now on GitHub)

However, installing Git in a centralized environment is not trivial:
See "Distributed Version Control Systems and the Enterprise - a Good mix?"


One point consistently missed is:

they are different in their nature.

  • SVN is a REVISION system (it stores branch and tag through cheap copy only! Merge support is not very efficient), and it is centralized.
  • Mercurial or bazaar are FILE VCS (they store versions of files), and distributed.
    Arne Babenhauserheide amends that for Mercurial by pointing out the History model, with "file, manifest and changeset".
  • Git, and that is very hard to grasp, is a CONTENT VCS (it stores delta of content, not the file itself: two files with the same content will be stored only once)

That means:

  • if you have a simple merge workflow, in a single development location, stick with SVN
  • if you have several development places, a distributed VCS is more adapted.
  • if you have a complex merge workflow, any modern VCS is better than SVN which struggle to keep merge informations at the right places for years. It then depends on the tools (Mercurial has a more advanced Windows support for instance)
  • if you have mainly text file and not too-large binary files, Git is excellent, provided you are aware of its limits.

这篇关于Git / Mercurial / Bazaar的流行度与推荐的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆