Git / Mercurial / Bazaar的流行度与推荐 [英] Popularity of Git/Mercurial/Bazaar vs. which to recommend
问题描述
- 或
- 更困难(因此需要更多问题),或者
- 具有更多功能(因此需要更多问题)。
或者最可能的是三者的组合。 (比方说,这个网站的受欢迎程度相当于普及程度。)以下是数字:
| 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年相比:
然而,在集中式环境中安装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
- is more popular, or
- is more difficult (hence requiring more questions), or
- 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屋!