Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

migrated from stackoverflow.com Nov 30 '12 at 15:50

This question came from our site for professional and enthusiast programmers.

22  
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
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
28  
Git literally exploded? Git doesn't sound like a safe tool at all. Thanks for the warning. –  Jason Nov 30 '12 at 18:19
3  
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
show 4 more comments

11 Answers

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
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): jamesmckay.net/2012/06/… –  nikcub Dec 1 '12 at 6:46
    
The mckay link is broken. Here is the Wayback Machine version. –  Faheem Mitha Aug 17 '13 at 14:56
add comment

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

share|improve this answer
add comment

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

share|improve this answer
1  
It would be nice to have a screenshot of the graph here. If you like I can add it. :) –  Jungle Hunter Nov 30 '12 at 16:59
    
+1. This graph best demonstrates what happened with the package renaming. –  Jeff Ferland Nov 30 '12 at 18:57
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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).

share|improve this answer
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. 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
2  
@RussellBorogove: Nonsense. The number of bioluminescent flying llamas in Djibouti is increasing exponentially, and I expect that will continue forever. –  Mechanical snail Dec 1 '12 at 1:32
show 9 more comments

There is only one reason. Linus Torvalds.

At the time, he had cobbled together git from a pile of shell scripts to more easily manage kernel patches in his email queue.

Mat Mackall built Mercurial, and pitched it to Linus, but Linus was happy with his ball of shell scripts, which was working quite well for him, and so he stuck with it.

Naturally, the Linux kernel hacker brigade started using it too, and incrementally improved it, rewriting much of it in C. Its feature and misfeature set grew and grew as more people started using it.

Eventually it became a real dvcs, instead of a simple patch queue manager. Lots of people were using it, Github appeared, and things really took off.

The "organic" origins of git are largely responsible for its baroque UI and hairball architecture (in comparison to Mercurial's well designed and extensible plugin API).

share|improve this answer
14  
Torvalds has been on crusade promoting git since at least August 2007, how could this be related to "2010-01"? –  gnat Nov 30 '12 at 17:02
2  
Because as much as anyone may wish to, it's just not possible for everyone to pay that much attention to what Linus is doing at any given time. I'm buying the critical mass argument. I've seen that happen with so many things. Word of mouth and unintentional promotion have as much to do with anything's success, as much as the 'it' in question being superior. Sometimes the 'it' in question isn't superior at all. –  Ian Atkin Nov 30 '12 at 20:27
1  
I think the fact that freedesktop and then gnome picked git played a big role and added a lot of network effect. –  tonfa Nov 30 '12 at 21:51
9  
This zero effort, purely opinionated answer lacks explanation and context. Statements made are not explained nor backed up with anything. Overly generalized wording like "There is only one reason. Linus Torvalds" does not even attempts to relate to the actual, specific question asked. As far as I can tell this blatantly violates requirements in the question notice: "provide some explanation and context.... explain why you're recommending it as a solution." –  gnat Dec 1 '12 at 8:17
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
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. –  R0MANARMY Nov 30 '12 at 16:08
9  
how does that answer the question asked? "What happened in 2010-01 that things suddenly changed" as shown at screen shot –  gnat Nov 30 '12 at 16:11
1  
@gnat That is the bleeding out/critical mass stage I was referring to. –  Michael Nov 30 '12 at 16:18
3  
@Michael the way I see it, your answer doesn't elaborate much on that. With all due respect, the way it is worded now 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
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
show 6 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.