89

Almost every article I've read 1 comparing Git and Mercurial it seems like Mercurial has a better command line UX with each command being limited to one idea only (unlike say git checkout).

But at some point Git suddenly became looking super popular and number of Git submitters on Debian popcon graph (see graph image below) literally exploded.

Git vs. Mercurial popularity

Source: Debian

What happened in 2010-01 that things suddenly changed. Looks like GitHub was founded earlier than that - 2008.

Jungle Hunter
  • 2,515
  • 3
  • 25
  • 36
  • 23
    well at some point github hit an inflection point and took off. I doubt it was git by itself. I wonder if someone could correlate gits populatrity with githubs popularity? – Doug T. Nov 30 '12 at 15:57
  • 2
    Actually, out of curiosity, what does the "number of submitters" represent? – Adam Houldsworth Nov 30 '12 at 15:59
  • 1
    @AdamHouldsworth people who have the [popcon package](http://packages.debian.org/search?keywords=popularity-contest) installed, and submitting their installed packages back to Debian. – Glen Solsberry Nov 30 '12 at 17:01
  • 6
    Are you curious about the overall popularity of Git or the installation of Git on Debian? Your data only provides information about one Linux distribution, ignoring every other Linux distribution, along with BSD, Mac, and Windows operating systems, yet you're asking a generic question about the rise in use of a tool. Based on some of the answers, there is a Debian-specific explanation, but there's insufficient data to speak to the popularity of Git versus the popularity of Mercurial across all potential users. It seems like the question as presented is based on faulty assumptions. – Thomas Owens Nov 30 '12 at 17:27
  • @DougT. Oddly, Github most closely correlates with crunchbase: http://www.google.com/trends/correlate/search?e=github&e=github.com&t=weekly&p=us – hyperslug Nov 30 '12 at 18:18
  • 33
    Git literally exploded? Git doesn't sound like a safe tool at all. Thanks for the warning. – Jason Nov 30 '12 at 18:19
  • 4
    Just a though, but git is used within a large number of other packages. Take a look at the difference between `apt-cache rdepends git-core`, and `apt-cache rdepends mercurial`. Perhaps it nothing to do with git other then it is included because someone installed some other common package. For example I am a user of etckeeper, and ikiwiki which both are based on git (I think it may be possible to use mercurial as well). I suggest you take some time and look at all the various things that Depend or Recommend git-core. – Zoredache Nov 30 '12 at 22:30
  • @Jason, Necessary oatmeal and XKCD: http://theoatmeal.com/comics/literally, http://xkcd.com/725/ – mowwwalker Dec 01 '12 at 03:38
  • 1
    By the way, it's popcon (**pop**ularity **con**test), not popcorn. – hammar Dec 01 '12 at 18:08
  • Partly it become a lot easy to use git on windows, along with better UIs for git, hence less reasons to use hg. – Ian Jul 24 '19 at 10:31

10 Answers10

48

The package "gnuit" (GNU Interactive Tools, a file browser/viewer and process viewer) was called "git" in Debian up until 2009-09-09, while git was called "git-core".

Therefore, a better graph to look at is:

Which shows that the popularity did not rise dramatically (take the green line for the left part until they cross, then take the red line).

rchard2scout
  • 754
  • 4
  • 10
Michael
  • 551
  • 3
  • 4
  • 17
    It still appears that in 2010/2011, there was a dramatic rise in popularity. It went from about 13k installs of git-core (which is Git) in 2010-01 to well over 50k installs (cumulative of git-core and git packages) in 2011-01. That's an increase of almost 40k installs in one year - a much sharper increase than any other annual increase. – Thomas Owens Nov 30 '12 at 17:08
  • 3
    Someone on HN edited the image and there still seems to be a dramatic rise like @ThomasOwens mentions. http://i.imgur.com/PmYj7.png – Jungle Hunter Nov 30 '12 at 17:21
  • 2
    Yeah, it still goes from linear growth to exponential, which is very significant, even if it wasn't quite as sudden as it first appears – Ben Brocka Nov 30 '12 at 17:48
  • 3
    @BenBrocka Isn't that actually going from linear to linear with a higher coefficient? :) And it will likely ultimately be logarithmic. – kreativitea Nov 30 '12 at 20:14
  • 1
    @kreativitea Thank you pointing that out. It gives me hope to see that there are other people out in the world who understand how to interpret statistical data. As opposed to the, "look like a hockey stick, must be exponential" crowd. – Evan Plaice Nov 30 '12 at 21:08
  • @BenBrocka It can only be considered exponential growth if the data looks linear on an exponential scale. In this case, growth peters off toward the top which most likely indicates that growth is approaching saturation. – Evan Plaice Nov 30 '12 at 21:10
  • There's no such thing as exponential growth, only sigmoidal. http://en.wikipedia.org/wiki/Sigmoid_function – Russell Borogove Nov 30 '12 at 21:34
  • 2
    @RussellBorogove: Nonsense. The number of bioluminescent flying llamas in Djibouti is increasing exponentially, and I expect that will continue forever. – Mechanical snail Dec 01 '12 at 01:32
  • @Mechanicalsnail -- nope, sigmoidal again. Regardless of the current population of bioluminescent flying llamas, I think you have to agree that Djibouti's carrying capacity for them is finite. – Russell Borogove Dec 01 '12 at 03:59
  • 1
    @Russell: I think Mechanical snail’s point is that the constantly-zero function is technically exponential. Of course, this is hardly a serious objection to your point. – Peter LeFanu Lumsdaine Dec 01 '12 at 05:04
  • @PeterLeFanuLumsdaine I think my point is that the constantly-zero function can be achieved by a sigmoid with a zero growth rate just as easily as an exponential with zero growth rate. – Russell Borogove Dec 01 '12 at 07:27
  • With what software was this graph made? – Zolomon Dec 01 '12 at 18:16
  • git-core is just not as cool of a name. Once they changed that everything was rainbows and unicorns. – Pace Dec 02 '12 at 14:43
  • 1
    `git-core` sounds like a music genre – Ben Lee Dec 03 '12 at 19:00
35

The git package in Debian was formerly known as git-core. In April 2010 the package was renamed to git. More details can be found in this blog post by Julius Plenz or this commit in Debian.

Here is a graph that shows the number installs of both git and git-core over time:

Git-GitCore-Graph

Thomas Owens
  • 79,623
  • 18
  • 192
  • 283
noqqe
  • 451
  • 3
  • 4
26

I was using Darcs for my own projects for a little while. I switched to git during the rapid ascension that your graph is referring to, so here is my observation:

Distributed source control systems at about that time were a bleeding edge thing. The so-called alpha programmers were using them on the side, but they fell outside of the radar of most professional software developers. The CVS/SVN/SourceSafe/TFS way of looking at the world was one that programmers in general were more or less happy with and most people assumed that the issues that spawned the distributed source control system could be fixed with better tooling. Just as you got an improvement by going from CVS -> SVN that there would someday be something that would allow you to go SVN -> SVN++. How else would you manage source control?

Then came git. What forced git onto everyone's radar was that there was a huge, public project that immediately adopted it. Git got a lot of users for free--if you were going to do serious kernel hackage, you used git. While I can't be 100% sure, I would wager that at that point in time no other DVCS had such a large user base.

Then it worked. It worked well. It worked well in public. It also, for its initial warts, was more stable than most concurrent DVCS at the time. Darcs, for example, could be put into an inconsistent state that required an absurdly complex (quadratic? factorial? Can't recall for sure, but it was bad) utility to fix. Git has always been more stable.

From its large userbase it just sort of bled out.

Every project, commercial or open source, needs that critical mass. Darcs didn't get it. Neither did Mercurial. Think back. Lots of smaller projects use it. There are probably even a number of commercial users. But what is your big success story?

"If it's good enough for the Linux kernel, it's good enough for you" is a very convincing argument.

So, to summarize, it was a good product that came along at the right time and got a large, devoted userbase.

Michael
  • 6,437
  • 2
  • 25
  • 34
  • 4
    I think both git and hg started around 2005, by 2010 they were 5 year old technology. I wouldn't have called them mainstream, but I don't think *bleeding edge* is correct either. – Roman Nov 30 '12 at 16:08
  • 10
    how does that answer the question asked? **"What happened in 2010-01 that things suddenly changed"** as shown at [screen shot](http://i.stack.imgur.com/nq8qW.png) – gnat Nov 30 '12 at 16:11
  • 2
    @gnat That is the bleeding out/critical mass stage I was referring to. – Michael Nov 30 '12 at 16:18
  • 4
    @Michael the way I see it, your answer doesn't elaborate much on that. With all due respect, the way it is [worded now](http://programmers.stackexchange.com/revisions/177878/1) it looks more like a wild guess, a shot in the dark. _"Back then in Jan 2010, I felt like it's coming, there was something in the air..."_ Not very helpful sorry – gnat Nov 30 '12 at 16:31
  • Sure Darcs never got critical mass, but Mozilla chose Mercurial when the discussion was hot and both were still on about equal ground. – Shtééf Nov 30 '12 at 17:29
  • Likewise, Bazaar is made and used by Canonical, makers of Ubuntu, and it worked better in Windows than git did for many years. Funny to see it not take off either. – CodexArcanum Nov 30 '12 at 17:56
  • @CodexArcanum For some exact comparisons, we will never know exactly why some products didn't take off. In the case of Bazaar, I'd almost guess that there aren't enough people outside of Canonical who use it. Even when kernel developers alone were using Git, that population formed a much larger cross section. Individuals from many companies used Git--did anyone outside of Canonical use Bazaar? – Michael Nov 30 '12 at 18:11
  • 1
    The issues that spawned distributed source control *have* been fixed by better tooling. Today's SVN is far better than the years-old version that DVCS folks seem to think is still current, and it fixes the inherent problems with the old model without introducing all the new headaches and additional complexity that DVCS brings to the table. – Mason Wheeler Nov 30 '12 at 18:50
  • 1
    -1. Well-reasoned conjecture, but graphs from other answers have show that the real explanation of the graph jump relates to a package renaming. – Jeff Ferland Nov 30 '12 at 18:56
  • @JeffFerland - No. The graphs only show that the popularity / usage increase CORRELATES with the package renaming. A correlation is not a causal relation, and therefore not a real explanation. In fact, the other answers are *conjecturing* that the correlation is because of causation. – Stephen C Dec 02 '12 at 00:36
  • 1
    @StephenC This answer describes the growth of git. The renaming describes data that is lacking from the questioner's graph. The renaming is responsible for altering the apparent graph. So yes, the correlated timing of package renaming is also the cause of the original question's graph appearing to have an absurdly steep change in the growth rate. – Jeff Ferland Dec 02 '12 at 01:45
13

I was a late adopter - switching from Mercurial to Git in around 2010.

The reason I believe Git became so popular is because of sites such as GitHub you had a network effect in version control tools. This was previously not seen, as you would share code on a project or company basis.

I specifically remember switching to Git and Github because all the projects that I was interested in following and contributed to had done the same, as well as developers that I associate with.

That is a network effect.

GitHub was the most popular web based collaboration layer built on DVCS and Git ended up being 'good enough'. Mercurial was certainly easier to learn and use, Git has many nuances, but had a solid brand because of Linus.

Just because GitHub launched in '08 and the growth begins in '10 doesn't mean GitHub isn't responsible. If you look at competitive growth charts in other areas such as social networking and the growth of Facebook the line is very similar.

You don't see growth charts like that without a viral loop / network effect.

For eg. compare to a chart of Facebook growth

facebook growth chart

Update: I know the source above may not have been accurate, but there are plenty of data sources that demonstrate that Git has been growing exponantially in the past few years.

Graph 1: Mentions of Git in job ads

mention of git in job ads

And the Eclipse survey which shows that Git market share went from 13% in 2011 to 27% in 2012. Amazing growth.

This post makes a much better explanation of Git growth and network effects than what I have done here.

nikcub
  • 497
  • 4
  • 5
  • 9
    There's a big difference between an exponential increase (like we see with the facebook graph) and the original graph the question included. If that graph were to be believed, there's a dramatic discontinuity in the slope at a specific point -- that would imply some *event* that happened, not a network effect. And indeed, it sounds from other answers that this event was the package being renamed! :) – starwed Nov 30 '12 at 17:25
  • This chart might be wrong, but there are other surveys that demonstrate that Git's growth *has* been exponential. For eg. The Eclipse Survey as discussed in this post (which makes the same point I am making, but in a much better way): http://jamesmckay.net/2012/06/on-gits-growth-and-the-reliability-of-the-eclipse-survey/ – nikcub Dec 01 '12 at 06:46
  • The mckay link is broken. Here is [the Wayback Machine version](http://web.archive.org/liveweb/http://browse.feedreader.com/c/james_mckay_dot_net/19143768). – Faheem Mitha Aug 17 '13 at 14:56
5

Just to make clear, this graph show the installation of git on debian systems.

Around the time the spike happens the Debian package was renamed from git-core to git. Maybe people found the package easier now that the name reflected the software.

5

I am surprised no one has mentioned Github as one of the biggest reason for Git to gain popularity. They pushed git mainstream.

Github launched in April 2008 and within 1-2yrs, they gained popularity. And then when you see a sudden explosion of git/git-core usage is primarily due to the 2Million github users and their 3.7million repositories. Github made git easy to use. Bitbucket was there, but github made it effortless. I am sure if github guys picked Hg in place of git, we should have seen a same surge in usage of Hg.

Analogy can be: Canonical:Linux::Github:Git

John
  • 619
  • 1
  • 6
  • 7
  • I absolutely agree. Github makes revision control fun, easy to understand, and so useful with all these open-source repositories. They are in my opinion the reason why Git became this big. – d34n5 Jul 22 '14 at 15:41
1

Well, IMHO, distributed VCS's like Hg and Git are inherently better than a centralised VCS - so SVN was always going to lose out to one of them.

And git, as has already been observed, had the huge advantage over Hg that it was used by the largest and most successful open-source project on the planet - that's a hell of a track record, right from the start.

As to why the sudden explosion in early 2010, my guess is fairly prosaic. Git is brilliant, but it's not massively intuitive for a beginner.

The best Git book, IMHO, is Pro Git, which was published in Sep 2009. The second-best (IMHO again), O'Reilly's Git book, was published in Jun 2009.

So the reason Git usage exploded in early 2010 could be as simple as the fact that that was when really good resources for learning how to use it became available.

Martijn Pieters
  • 14,499
  • 10
  • 57
  • 58
djh
  • 27
  • 1
  • 1
    SVN was never a leading centralised VCS when it come to branching and merging. Hg and Git were the first open source VCS that cope well with branching and merging. I don't think centralised/distributed had that much to do with it. – Ian Nov 13 '14 at 13:58
1

Choosing a version control system is a social decision. The team all needs to use the same solution. As opposed to a text editor, which is a personal decision-- different developers can use different editors and easily collaborate.

So there are network effects to choosing a version control system, causing systems that may be a little better or a little more popular to become even more popular.

For example, I prefer darcs for open source projects, but found that more of my potential contributors were familiar with git, and I received more contributions more readily for projects hosted with git instead of darcs. So, I end using git a lot instead darcs. Then, because I use it and publish code on Github, it appears that I endorse it or may even prefer it, which could influence others to use it.

Developers don't want to learn a new source control system for each project they contribute to, so it benefits the overall community to have a standard that is "good enough" and widely popular, then to have every team and project choose the "best" solution in a vacuum.

Github only added fuel to fire of the network effect.

-1

Looking at the corrected graph in Michael's answer, showing both git-core and git on Debian systems, the question seems to be why git started to become popular in 2006 on Debian systems and why it grew exponentially between 2006-2012.

The reason could be the strong adoption of Debian-based Linux distributions, like Ubuntu, which started to become popular around 2005-2006 and became the #1 distro up until around 2011, when Mint, also Debian-based, became #1. In the end of 2012, Mint is still #1 and Ubuntu #3 according to DistroWatch.

GitHub, founded in 2008, provided free git hosting, and between 2008 and 2012 became the #1 source repository service in the world with ~2.5 million users and ~4.5 million projects, according to Wikipedia in late 2012.

Rails and many other projects switched from Rubyforge to GitHub in the late 2000s. In addition, Bundler was introduced around the time originally in question (late 2009) with support for installing/updating gems via a :git option in the Gemfile, and Bundler was included as a dependency of Rails 3. Projects in Python, Javascript, C, C++, Java, CSS, etc. also migrated to or started on GitHub.

Those that wanted to contribute to the projects on GitHub needed to fork the project in GitHub, use a local git client to clone the repository before making amendments and pushing them back into GitHub and doing a pull request. This was much simpler than other methods used before and arguably was a significant reason that it was adopted by the projects that moved to GitHub or decided to start there. This meant git-core/git needed to be installed in the Debian-based distros so that developers could use GitHub.

So, I believe that it was a combination of Debian-based distros becoming more popular and growing git adoption because of GitHub's growth in users and projects, which likely stems from GitHub's free hosting and user experience.

-2

I think that a lot of people are confusing correlation with causation.

The graphs presented all show correlations between measures of gits popularity and events ... and other measures. However, a correlation is not clear evidence for causation.

Some other answers attempt to draw relationships with other things; e.g. Linus Torsvalds evangelism for DVCS, formation of Github, the rise of social networking. While there is evidence of correlation (on a time line) is not as strong, that does not exclude causation. Especially if you accept the "network effect" hypothesis; i.e. that there are multiple causes.

The bottom line, is that the kind of evidence that is available cannot show causation. We are talking about collective behaviour of hundreds of thousands of people, and people make decisions for different reasons ... or no logical reason at all. Programmers are no different from anyone else.

Stephen C
  • 25,180
  • 6
  • 64
  • 87