GitSurvey2011

From Git SCM Wiki
Jump to: navigation, search

Git User's Survey 2011 summary

The "Git User's Survey 2011" has been closed on October 3, 2011.

The survey could be found here:

The survey was opened from 5 September to 3 October, 2012 (for 30 days).

You can get raw data (individual responses) for the survey here (exported from Survs.com):

You can use survey_parse_Survs_CSV(num).com.perl script from http://github.com/jnareb/GitSurvey-scripts repository to analyze data from CSV export linked above.

The live results of the survey can be found at (note: this link might stop working):


There were 11498 individual responses in this survey, for 98604 views.
There were 8841 individual responses in GitSurvey2010 (the 5 responses in 'test' channel were removed), for 28001 views.
There were 3868 individual responses in GitSurvey2009 (the 30 responses in 'test' channel were removed), for 14106 views.
There were 3236 individual responses in GitSurvey2008 (including 21 responses in 'test' channel), for 12101 views.
There were 683 individual responses in GitSurvey2007.
There were around 117 responses in GitSurvey2006.

--- Table of contents:

Contents



About you

01. What country do you live in (country of residence)?

(tabularized free-form single line)

Geomap of responders per country

This table is sorted alphabetically by country name.

The countries where number of responders was less than 1% were gathered together and summed under "other countries" label.

Country Count Perc.
United States 3098 34.5%
 
Germany 1063 11.8%
 
United Kingdom 583 6.5%
 
Canada 446 5.0%
 
France 372 4.1%
 
Australia 253 2.8%
 
Sweden 225 2.5%
 
Russian Federation 198 2.2%
 
Poland 192 2.1%
 
Netherlands 184 2.0%
 
Finland 146 1.6%
 
Austria 141 1.6%
 
Italy 136 1.5%
 
Norway 133 1.5%
 
Brazil 129 1.4%
 
Switzerland 118 1.3%
 
India 108 1.2%
 
Spain 106 1.2%
 
Belgium 95 1.1%
 
Czech Republic 93 1.0%
 
other countries (below 1% resp.) ~ 1126 ~ 12.5%
 
Invalid answer / Unknown 73 0.8%
 
Base 8979 / 11498

Description:
Please provide name of the country in English, e.g. 'United States' or 'Germany' (without quotes).

Analysis:
Most responders are from USA among other coutries (35%), followed by Germany, UK, Canada and France (12% to 4%), as seen in the table above.
Most responders are from Europe among other continents (48%), with North America close second (40%), as seem from the table below.

Continent Count Perc.
Africa 39 0.4%
 
Asia 414 4.6%
 
Europe 4299 47.9%
 
North America 3591 40.0%
 
Oceania 330 3.7%
 
South America 233 2.6%
 
Unknown 73 0.8%
 


02. How old are you (in years)?

(tabularized free-form single line)

Age Count Perc.
< 18 200 2.2%
 
18-21 883 9.9%
 
22-25 2085 23.3%
 
26-30 2834 31.7%
 
31-40 2336 26.1%
 
41-50 502 5.6%
 
51-75 101 1.1%
 
76+ 6 0.1%
 
NaN 2 0.0%
 
Base 8949 / 11498


Description:
Please provide simple number, e.g. 25

Analysis:
Most responders are between 26 and 30 years old; most common age (mode) is 27 years old. Youngest user who answered this question is 11 years old (next oldest is 12 years old).


03. Does Git include code or documentation by you? (Are you a Git developer?)

(single choice)

Answer Count Perc.
Yes 820 9.1%
 
No 8224 90.9%
 
Base 9044 / 11498

Analysis:
820 of Git developers (out of around 910 in all) answered this survey. This is 9.1% of responders who answered this question.


Getting started with Git

04. Have you found Git easy to learn?

(single choice)

Answer Count Perc.
Very easy 427 4.9%
 
Easy 2006 23.2%
 
Reasonably easy 4788 55.4%
 
Hard 1338 15.5%
 
Very hard 89 1.0%
 
Base 8648 / 11498


05. Have you found Git easy to use?

(single choice)

Answer Count Perc.
Very easy 933 10.8%
 
Easy 3205 37.1%
 
Reasonably easy 3799 44.0%
 
Hard 639 7.4%
 
Very hard 57 0.7%
 
Base 8633 / 11498


Description:
Both question "3. Have you found Git easy to learn?" and "4. Have you found Git easy to use?" are about being it easy or hard in general; for mathematically inclined you can think about it as a weighted average.

Analysis:
Responders say that Git is reasonably easy to learn, and easy to reasonably easy to use; Git is easier to use than to learn.

Note: When analyzing results for this two questions one should take into account that somebody considering or finding Git too hard to learn wouldn't be probably Git user, and thus wouldn't fill this survey. So because it is Git User's Survey we should consider that results can be skewed towards lower value (easier).


06. Which Git version(s) are you using?

(multiple choice, with other)

Git version Count Perc.
pre 1.3 5 0.1%
 
1.3.x 13 0.2%
 
1.4.x 42 0.5%
 
1.5.x 204 2.4%
 
1.6.x 966 11.3%
 
1.7.x 7703 90.2%
 
1.7.x-rcN version (release candidate) 191 2.2%
 
minor (maintenance) release 1.x.y.z 1153 13.5%
 
'master' branch of official git repository 276 3.2%
 
'next' branch of official git repository 39 0.5%
 
'pu' branch of official git repository 7 0.1%
 
version from msysGit / Git for Windows fork repository 947 11.1%
 
JGit implementation (e.g. via Eclipse plugin, EGit) 481 5.6%
 
other git implementation (Git#, Dulwich, etc.) 101 1.2%
 
other, please specify 160 1.9%
 
Base 8543 / 11498


Description:
You can find git version by using "`git --version`" or "`git version`".

"Minor release" is additional specification, so if you for example use git version 1.6.3.3, please check both "1.6.x" and "minor release"; if you use "v1.7.6-rc3" please check both "1.7.x" and "-rcN version".


Analysis:
More than 90% of responders use git version 1.7.x at least at one place. There are 5 unfortunate stragglers who use pre 1.3.x version.

07. Rate your own proficiency with Git:

(single choice)

Answer Count Perc.
1. novice 321 3.7%
 
2. casual, needs advice 1643 19.0%
 
3. everyday use 3107 35.9%
 
4. can offer advice 2954 34.2%
 
5. know it very well 619 7.2%
 
Base 8644 / 11498


Description:
You can think of it as 1-5 numerical grade of your proficiency in Git.

Analysis:
Responders fall somewhere between 'everyday use' (36%) and 'can offer advice' (34%) proficiency. Only less that 4% of responders (321 responders) consider themself to be a novice in Git.


How you use Git

08. I use Git for (check all that apply):

(multiple choice, with other)

Answer Count Perc.
work projects 6240 82.4%
 
unpaid projects 6267 82.8%
 
proprietary projects 3249 42.9%
 
OSS development (also public domain, and published and unlicensed) 4860 64.2%
 
private stuff (unpublished), in house 5945 78.5%
 
code (programming) and its documentation 6629 87.5%
 
data, documents (also e.g. static website) 3680 48.6%
 
sharing data or sync 1748 23.1%
 
managing configuration files 3066 40.5%
 
backup 1579 20.9%
 
backend for wiki, blog, or other web app 897 11.8%
 
backend for bugtracker / issue tracker 235 3.1%
 
frontend to other SCM (e.g. git-svn) 1252 16.5%
 
other (please specify) 129 1.7%
 
Base 7572 / 11498


Description:
Note that above choices are neither orthogonal nor exclusive.
You might want to check multiple answers even for a single repository.


09. How do/did you obtain Git (install and/or upgrade)?

(multiple choice, with other)

Answer Count Perc.
binary package 5566 73.9%
 
source package or script (automatic compiling) 2242 29.8%
 
source tarball (extract, make, make install) 915 12.1%
 
pull from (main) repository 718 9.5%
 
preinstalled / sysadmin job 875 11.6%
 
other - please specify (if none of the above apply) 257 3.4%
 
Base 7531 / 11498


Description:
Explanation:

  • binary package covers pre-compiled binary (e.g. from rpm or deb binary packages);
  • source package covers things like deb-src and SRPMS/*.src.rpm;
  • source script is meant to cover installation in source-based distributions, like 'emerge' in Gentoo.

"Source package or script" means that git is compiled from source, but it is installed as system package (easy uninstall / upgrade).

Automatic update (apt, yum, etc.) in most cases means binary package install; unless one uses source-based distribution like Gentoo, CRUX, or SourceMage, where automatic update means using source package (or source script).

The option named "preinstalled / sysadmin job" means that either you didn't need to install git because it was preinstalled (and you didn't upgrade); or that you have to ask system administrator to have git installed or upgraded.

Note that this question is multiple choices question because one can install Git in different ways on different machines or on different operating systems.


Analysis:
Most people (74%) obtain/install Git at least at one place using ready binary packages.


10. On which operating system(s) do you use Git?

(multiple choice, with other)

Operating System Count Perc.
GNU/Linux (includes MeeGo) 6180 81.7%
 
*BSD (FreeBSD, OpenBSD, NetBSD, etc.) 491 6.5%
 
MacOS X (Darwin) 3786 50.1%
 
MS Windows/Cygwin 841 11.1%
 
MS Windows/msysGit (MINGW) 2173 28.7%
 
some MS Windows (unknown or other) 155 2.0%
 
Solaris / OpenSolaris / Illuminati / IllumOS 208 2.8%
 
other Unix 115 1.5%
 
Other, please specify 66 0.9%
 
Base 7562 / 11498


Description:
On Unix-based operating system you can get the name of operation system by running 'uname'.

Analysis:
GNU/Linux dominates among operating systems used (82%), then there is MacOS X (50%), then MS Windows (where msysGit is 3 to 1 preferred to Cygwin), with 39%.


11. What Git interfaces, implementations and frontends do you use?

(multiple choice, with other)

Answer Count Perc.
git (core) commandline 7396 98.2%
 
JGit (Java implementation), e.g. via Eclipse plugin 778 10.3%
 
NGit or Git# (C# implementation) 57 0.8%
 
Dulwich (pure-Python implementation) 116 1.5%
 
Git::PurePerl (Perl implementation) 35 0.5%
 
git.js (JavaScript) 30 0.4%
 
libgit2 bindings 176 2.3%
 
Easy Git 19 0.3%
 
StGIT 36 0.5%
 
Guilt 7 0.1%
 
TopGit 14 0.2%
 
Zit 3 0.0%
 
I don't know, I use only (graphical) tools 93 1.2%
 
Other (please specify) 1373 18.2%
 
Base 7529 / 11498

Analysis:
Almost 10% of responders use JGit.


12. What kind of Git tools do you use?

(multiple choice)

Answer Count Perc.
editor/IDE VC integration (e.g. EGit, TextMate bundle, magit) 2612 41.2%
 
build tool integration (e.g. git plugin for Maven, gitbuilder, Parabuild) 682 10.8%
 
filemanager / shell extension (e.g. git-cheetah, TortoiseGit) 817 12.9%
 
filesystem interface (e.g. gitfs, figfs) 63 1.0%
 
graphical history viewer/browser (e.g. gitk) 3908 61.6%
 
graphical commit tool (e.g. git-gui) 1974 31.1%
 
graphical diff and/or merge tool (e.g. Kompare, Meld) 1989 31.4%
 
graphical blame or pickaxe tool 426 6.7%
 
tool to manage git repositories (e.g. Gitosis, Gitolite) 1444 22.8%
 
git-instaweb, or self-hosted web interface 536 8.5%
 
self-hosted code review system (e.g. Gerrit) 362 5.7%
 
self-hosted git software forge (e.g. Gitorious, GitHub:FI, InDefero) 1185 18.7%
 
patch management interface (e.g. StGit, Guilt) 70 1.1%
 
tracking some files out-of-band (e.g. git-annex, git-media) 65 1.0%
 
storing metadata (e.g. metastore, gitperms, git-cache-meta) 32 0.5%
 
managing composite repositories (e.g. git-subtree, gitslave, repo) 224 3.5%
 
my own scripts (for daily use) 1105 17.4%
 
my own scripts (for special tasks) 1057 16.7%
 
Base 6343 / 11498


Description:
Here graphics diff tool means tools such as Kompare, and graphical merge tool means tools such as Meld and KDiff3. Those answers include graphical merge and diff tools used by programmers editors and IDEs.

"graphical history browser (any)" covers tools such as gitk, QGit, Giggle, tig etc., but also built-in git commands such as "git log --graph" and "git show-branch". If you use one of mentioned tools _as_ history browser, mark both a tool and "graphical history browser (any)"; if you use some graphical history viewer not listed here, please both mark this answer and specify it in the "other tool" answer.

Similarly for other answers marked "(any)".

Please select GUI that you use somewhat regularly (at least from time to time).

Similar issue applies to all other "What do you use?" kind of questions.


Analysis:
62% of responders use some kind of graphical history viewer, and 41% use Git support integrated with editor/IDE. Graphical diff and graphical commit tool are used by around 31% of responders.


13. List git tools that you use (optional)

(free-form essay)

 TO TABULARIZE
 1858 / 11498 non-empty responses

14. What do you use submodules (or their equivalent) for?

(multiple choice, with other)

Answer Count Perc.
I don't use submodules at all 4466 63.5%
 
I use submodules (git-submodule) 2050 29.2%
 
I use repo 273 3.9%
 
I use git-subtree 176 2.5%
 
I use gitslave 16 0.2%
 
to import repositories maintained by others (in subdirectory) 1313 18.7%
 
for your own (or your organization's) code shared between different projects 1084 15.4%
 
to separate large and/or many files for performance reasons 168 2.4%
 
to separate data which you don't want (or aren't allowed) to disclose 191 2.7%
 
Other, please specify 129 1.8%
 
Base 7029 / 11498 61.1%


15. How do you include changes in a new commit?

(matrix)

Answer never rarely often Avg. / Count  
commit -a 1444 19.4% 2164 29.0% 3846 51.6% 2.3 (3) / 7454
 
 
 
commit <file> 2986 40.1% 1965 26.4% 2278 30.6% 1.9 (3) / 7229
 
 
 
commit -i <file> 4814 64.6% 1226 16.4% 786 10.5% 1.4 (3) / 6826
 
 
 
git add 381 5.1% 1033 13.9% 5066 68.0% 2.7 (3) / 6480
 
 
 
git stage 5012 67.2% 969 13.0% 332 4.5% 1.3 (3) / 6313
 
 
 
git update-index 5532 74.2% 548 7.4% 145 1.9% 1.1 (3) / 6225
 
 
 
incremental add / commit 2726 36.6% 1681 22.6% 1782 23.9% 1.8 (3) / 6189
 
 
 
graphical commit tool 3553 47.7% 1194 16.0% 1367 18.3% 1.6 (3) / 6114
 
 
 
filemanager extension 5089 68.3% 457 6.1% 223 3.0% 1.2 (3) / 5769
 
 
 
Base 7454 / 11498


16. Which of the following features do you use?

(multiple choice, with other)

Answer Count Perc.
git bundle (off-line transport) 505 8.0%
 
eol conversion (crlf) 1381 21.9%
 
custom diff/merge driver 866 13.7%
 
textconv 89 1.4%
 
word diff 893 14.2%
 
gitattributes (other than above) 356 5.6%
 
merge strategy options (e.g. -Xrenormalize) 266 4.2%
 
submodules (subprojects) 1995 31.6%
 
subtree merge (optionally git-subtree) 305 4.8%
 
partial (sparse) checkout 349 5.5%
 
assume-unchanged bit 148 2.3%
 
separate worktree / core.worktree 154 2.4%
 
multiple worktrees (git-new-worktree) 176 2.8%
 
gitdir mechanism ('.git' file pointing to repository) 171 2.7%
 
alternates mechanism (sharing object database) 141 2.2%
 
stash (optionally "git stash --keep-index") 4395 69.7%
 
shallow clone (e.g. "git clone --depth=<n>") 515 8.2%
 
detaching HEAD (e.g. "git checkout HEAD^0") 1817 28.8%
 
commit message templates 398 6.3%
 
interactive commit / per-hunk comitting / partial commit 2300 36.5%
 
interactive rebase (small scale history editing) 2792 44.3%
 
git-filter-branch or equivalent (large history rewriting) 829 13.1%
 
bisect (optionally "git bisect run <script>") 1908 30.3%
 
tracking code movement with git-blame ("git blame -M" etc.) 2003 31.8%
 
advanced history examination (pickaxe search, ancestor only, etc.) 502 8.0%
 
committing with dirty tree (keeping some changes uncommitted) 2681 42.5%
 
non-default hooks (from contrib/hooks/ or other) 924 14.7%
 
shell completion of commands 3145 49.9%
 
git-aware shell prompt 2264 35.9%
 
git aliases, shell aliases for git, or own git scripts 2700 42.8%
 
one-way interaction with other SCMs (from SCM to git) 880 14.0%
 
two-way interaction with other SCMs (git as fat client) 898 14.2%
 
git cvsserver 35 0.6%
 
git notes 214 3.4%
 
replace meachanism (git replace) 32 0.5%
 
permanent grafts (not only as a way to do filter-branch) 62 1.0%
 
Other, please specify 86 1.4%
 
Base 6306 / 11498

Analysis:
Most popular feature, by quite a large margin, is stash, with two thirds (69.7%) of responses. "git stash" first appeared in git version 1.5.3, from September 2007.

Second most common used feature is "shell completion of commands", with half of responses (49.9%).

Then there are, with percentage of responses from 45% to 42%, in descending order of responders: interactive rebase, aliases (git aliases, shell aliases, one's own git scripts), and comitting with dirty tree (keeping some changes uncommitted).

Least used, with only 0.5% of responses, is "git cvsserver" and "replace mechanism (git replace)".


17. Which of the following features would you like to see implemented in git?

(multiple choice)

Answer Count Perc.
better support for big files (large media) 2202 35.3%
 
resumable clone/fetch (and other remote operations) 1523 24.4%
 
GitTorrent Protocol, or git-mirror 830 13.3%
 
lazy clone / on-demand fetching of object 772 12.4%
 
subtree clone 816 13.1%
 
support for tracking empty directories 2045 32.8%
 
environment variables in config 520 8.3%
 
better undo/abort/continue, and for more commands 1420 22.8%
 
'-n' like option for each command, which describes what would happen 1968 31.5%
 
warn before/when rewriting published history 1525 24.4%
 
side-by-side diffs and/or color-words diff in gitweb 1109 17.8%
 
admin and/or write features in gitweb 336 5.4%
 
graphical history view in gitweb 932 14.9%
 
GUI for rebase in git-gui 1013 16.2%
 
GUI for creating repository in git-gui 382 6.1%
 
graphical diff/merge tool integrated with git-gui 840 13.5%
 
syntax highlighting in git-gui 816 13.1%
 
filename encoding (in repository vs in filesystem) 327 5.2%
 
git push --create 1553 24.9%
 
localization of command-line messages (i18n) 214 3.4%
 
wholesame directory rename detection 955 15.3%
 
union checkouts (some files from one branch, some from other) 385 6.2%
 
advisory locking / "this file is being edited" 397 6.4%
 
"commands issued" (or "command equivalents") in git-gui / gitk 309 5.0%
 
built-in gitjour/bananajour support 206 3.3%
 
better support for submodules 1582 25.3%
 
other (described below) 323 5.2%
 
Base 6241 / 11498

Analysis:
Most requested features, both with more of 32% responders, are better support for big files / large media, and support for tracking empty directories.


18. Describe what features would you like to have in Git,

if they are not present on the list above (in previous question)

(free-form essay)

 TO TABULARIZE
 828 / 11498 non-empty responses


Interacting with other repositories

19. Which git hosting site(s) do you use for your project(s)?

(Please check only hosting sites where you publish/push to)

(multiple choice, with other)

Answer Count Perc.
repo.or.cz 197 2.8%
 
GitHub 6179 87.5%
 
Gitorious 828 11.7%
 
Google Code 579 8.2%
 
InDefero 33 0.5%
 
Savannah 41 0.6%
 
SourceForge 351 5.0%
 
BerliOS 25 0.4%
 
Assembla 192 2.7%
 
Codebase 88 1.2%
 
Unfuddle 144 2.0%
 
Codesion 14 0.2%
 
GitFarm 5 0.1%
 
ProjectLocker 34 0.5%
 
The Chaw 2 0.0%
 
Beanstalk 124 1.8%
 
CipherHive 0 0.0%
 
kernel.org 72 1.0%
 
freedesktop.org 46 0.7%
 
Alioth 63 0.9%
 
debian-hosted 90 1.3%
 
Fedora Hosted 36 0.5%
 
git hosting site for set of related projects (e.g. OLPC) 109 1.5%
 
generic site without git support 138 2.0%
 
company internal 2180 30.9%
 
self hosted 2658 37.6%
 
Other (please specify) 253 3.6%
 
Base 7061 / 11498

Description:
You can find those and other git hosting sites listed on GitHosting page.

Analysis:
The leader among git hosting sites is (like in previous years) GitHub with 87% of responders (up from 77% in 2010 and 62% in 2009); "self hosted" is second with 38% (down from 44% in 2010 and 57% in 2009), followed by "company internal" with 31%.

The high position of GitHub migh be at least partially caused by the fact that GitHub has good announcement system for new features, which was used to announce "Git User's Survey 2011" to GitHub users.


20. Do you use paid git hosting, and if so, why?

(multiple choice, with other)

Answer Count Perc.
N/A (don't use paid git hosting) 4423 63.8%
 
private repositories 2461 35.5%
 
increased limits (repository size, number of repositories) 589 8.5%
 
paid support / help 84 1.2%
 
extra features compared to free plan / free hosting 326 4.7%
 
other, please specify 123 1.8%
 
Base 6928 / 11498

Analysis:
Most responders do not use paid git hosting (64%); those that pay for git hosting do it mainly for private repositories (35%).

21. If you self-host git repositories, what tools do you use?

(if you are hosting git repositories, and use those tools)

(multiple choice, with other)

Answer Count Perc.
gitosis 1063 36.3%
 
gitolite 729 24.9%
 
Gitblit 4 0.1%
 
SCM Manager 19 0.6%
 
gitweb 918 31.3%
 
cgit 295 10.1%
 
Gitalist 21 0.7%
 
ViewGit 22 0.8%
 
GitPHP / git-php 45 1.5%
 
GitHub:FI 91 3.1%
 
Gitorious 283 9.7%
 
InDefero 29 1.0%
 
Girocco (used e.g. by repo.or.cz) 6 0.2%
 
repo 110 3.8%
 
Gerrit 241 8.2%
 
other management / collaboration git tool 266 9.1%
 
Base 2932 / 11498 25.5%

Analysis:
From those that self-host git repositories (2932 / 11498) more use unmaintained(?) Gitosis (36%) than Gitolite (25%).

Gitweb web interface (distributed and developed with git) is also popular (31%); among pure web interfaces only cgit has significant share (10%).

22. How do you fetch/get changes from upstream repositories?

(multiple choice, with other)

Answer Count Perc.
git protocol (e.g. git://example.com/repo.git) 5371 76.1%
 
ssh (e.g. ssh://example.com/repo.git or user@example.com:/repo.git) 5365 76.0%
 
http (e.g. http://example.com/repo.git) 3277 46.4%
 
rsync (DEPRECATED) (e.g. rsync://example.com/repo.git) 20 0.3%
 
filesystem (e.g. /path/to/repo.git or file:///path/to/repo.git) 1567 22.2%
 
via git-bundle 139 2.0%
 
foreign SCM import / script like git-svn 899 12.7%
 
Other, please specify 78 1.1%
 
Base 7062 / 11498


Description:
This question asks about how do you get changes (updates) from projects you follow into your local repository. It is not about how do you get latest version of Git.

Fetching (or rather cloning) via bundle could mean that project publishes ready for download bundles to reduce traffic and load on server (HTTP download [of bundle] can be resumed, git-clone currently cannot; one can also distribute bundle using P2P).

Analysis:
git:// protocol and SSH have the same popularity for fetching; both around 76%. Only 46% responders use HTTP for fetching (somewhere). Deprecated rsync protocol is used only by 20 responders (0.3%).


23. How do you publish/propagate your changes?

(multiple choice, with other)

Answer Count Perc.
push via SSH 5701 80.1%
 
push via HTTP or HTTPS 2024 28.4%
 
push via git protocol 3433 48.2%
 
push (unknown) 434 6.1%
 
pull request (+ any form of announcement / notification) 1465 20.6%
 
format-patch + email 727 10.2%
 
format-patch + other (e.g. reviewboard, issue tracker or forum) 333 4.7%
 
git bundle 133 1.9%
 
git-svn (to Subversion repository) 938 13.2%
 
git-p4 (to Perforce repository) 41 0.6%
 
foreign SCM interface (other than mentioned above) 63 0.9%
 
other - please specify 86 1.2%
 
Base 7116 / 11498


Description:
Publishing via bundle could mean sending bundle via email, or posting it on review board (or forum).

Instead of git-format-patch there can be utilized other way of generating patch (e.g. git-show, git-diff, 'patch' view from gitweb, etc.)

NOTE: "push via git protocol" was to mean push to URL which looks like `git://git.example.com/repo` but was probably misunderstood.


Other version control systems

24. What other version control systems do you use beside Git?

(multiple choice, with other)

Answer Count Perc.
PVCS 22 0.4%
 
SCCS 16 0.3%
 
RCS 165 3.2%
 
CVS 975 18.6%
 
Subversion 4261 81.4%
 
Perforce 366 7.0%
 
ClearCase 205 3.9%
 
AccuRev SCM 14 0.3%
 
StarTeam 23 0.4%
 
Visual SourceSafe 114 2.2%
 
Vault 9 0.2%
 
Team Foundation Server 181 3.5%
 
Visual Studio Team System / ALM 30 0.6%
 
Rational Team Concert 16 0.3%
 
Bazaar 492 9.4%
 
Mercurial 1633 31.2%
 
Monotone 30 0.6%
 
Darcs 175 3.3%
 
SVK 24 0.5%
 
Fossil 72 1.4%
 
Veracity 11 0.2%
 
BitKeeper 12 0.2%
 
Code Co-Op 1 0.0%
 
Teamware 7 0.1%
 
Plastic SCM 13 0.2%
 
by hand / own scripts / custom 179 3.4%
 
other, please specify 93 1.8%
 
Base 5232 / 11498 45.5%

Comment:
The question about other version control systems was lacking the "N/A (I use only Git)" answer; in fact presence or absence of N/A answer is quite inconsistent in this year survey.

Analysis:
Most popular other version contsol systems used alongside or as an alternative to Git are Subversion (81%), followed after a large gap by Mercurial (31%).

What you think of Git

25. Overall, how happy are you with Git?

(single choice)

Answer Count Perc.
unhappy 42 0.6%
 
not so happy 223 3.1%
 
happy 1624 22.5%
 
very happy 3909 54.1%
 
completely ecstatic 1425 19.7%
 
Base 7223 / 11498

Analysis:
Most responders are "very happy" with Git, and this answer seems to be a center of responses.


26. In your opinion, which areas in Git need improvement?

Please state your preference.

(matrix)

Answer don't care don't need a little some much Avg. / Count  
user-interface 856 12.2% 997 14.2% 1848 26.3% 1988 28.3% 1329 18.9% 3.3 (5) / 7018
 
 
 
 
 
documentation 314 4.5% 1238 17.6% 2408 34.3% 2170 30.9% 808 11.5% 3.3 (5) / 6938
 
 
 
 
 
performance 882 12.6% 4028 57.4% 1278 18.2% 510 7.3% 155 2.2% 2.3 (5) / 6853
 
 
 
 
 
portability 1772 25.2% 2439 34.8% 1109 15.8% 895 12.8% 568 8.1% 2.4 (5) / 6783
 
 
 
 
 
more features 1116 15.9% 2350 33.5% 2290 32.6% 839 12.0% 157 2.2% 2.5 (5) / 6752
 
 
 
 
 
tools (e.g. GUI) 1318 18.8% 1367 19.5% 1490 21.2% 1570 22.4% 985 14.0% 2.9 (5) / 6730
 
 
 
 
 
localization (translation) 3773 53.8% 2075 29.6% 475 6.8% 265 3.8% 119 1.7% 1.6 (5) / 6707
 
 
 
 
 
community (mailing list) 3619 51.6% 2136 30.4% 713 10.2% 134 1.9% 49 0.7% 1.6 (5) / 6651
 
 
 
 
 
community (IRC) 3677 52.4% 1988 28.3% 588 8.4% 137 2.0% 51 0.7% 1.6 (5) / 6441
 
 
 
 
 
Base 7018 / 11498


Analysis:
User interface, documentation and tools need improvement; performance rather doesn't need to be improved; people mostly don't care about improving communities or localization (but please remember that this survey was in English, and announced on English-speaking sites / lists).


Changes in Git (since year ago, or since you started using it)

27. Did you participate in previous Git User's Surveys?

(multiple choice)

Answer Count Perc.
in 2006 43 0.6%
 
in 2007 84 1.2%
 
in 2008 225 3.1%
 
in 2009 619 8.7%
 
in 2010 1107 15.5%
 
I don't remember, but I have participated in the past 1127 15.8%
 
none of above (first Git User's Survey) 5026 70.3%
 
Base 7153 / 11498


28. How do you compare the current Git version with the version from one year ago?

(single choice)

Answer Count Perc.
better 2345 32.8%
 
no changes 1109 15.5%
 
worse 2 0.0%
 
cannot say 3683 51.6%
 
Base 7139 / 11498


Description:
The version from approximately one year ago is 1.7.2 from 21-07-2011 (1.7.3 is from 18-09-2010).

Changes since 1.7.2 include:

  • passing extra options to merge strategy via "-X" in more places
  • -Xrename-threshold and -Xignore-space-at-eol for recursive merge strategy
  • "exec" instruction support in interactive rebase
  • system-wide attributes file /etc/gitattributes and `core.attributesfile`
  • completion of commands for bash 4 and zsh
  • [<tree>]:./<path> to use path relative to current directory
  • ":/<path>" to use path relative to root of working tree hierarchy
  • ":/" magic pathspec to work on entire working tree
  • "git log -G"
  • globbing pathspecs in "git log"
  • git log --cherry and --cherry-mark
  • "git notes merge" and --notes option to "git log" and friends
  • extending "git shell" with custom set of commands
  • beginnings of i18n/l10n and translations
  • "git checkout --detach"
  • "git cherry-pick" and "git revert" improvements
  • "git merge" and "git rebase" now DWIMs to upstream
  • "git merge -" to merge the previous branch
  • `merge.ff` configuration variable
  • selecting common timezone in gitweb with JavaScript
  • updated (faster and more robust) content tags (labels) in gitweb
  • GIT_PREFIX in "[alias] <name> = !process"
  • git diff --dirstat=0 and --dirstat=lines
  • and more...

See individual RelNotes for more details


Documentation. Getting and giving help.

29. How useful have you found the following forms of Git documentation?

(matrix)

Answer never used not useful somewhat useful Avg. / Count  
Git Wiki 3045 43.8% 214 3.1% 2362 34.0% 1333 19.2% 2.3 (4) / 6954
 
 
 
 
Git Reference site 2078 29.9% 204 2.9% 2454 35.3% 2147 30.9% 2.7 (4) / 6883
 
 
 
 
on-line help 881 12.7% 148 2.1% 2580 37.1% 3181 45.7% 3.2 (4) / 6790
 
 
 
 
help distributed with git 1149 16.5% 448 6.4% 2355 33.9% 2753 39.6% 3.0 (4) / 6705
 
 
 
 
printed books (or ebooks) 3501 50.3% 202 2.9% 1262 18.1% 1506 21.7% 2.1 (4) / 6471
 
 
 
 
Base 6954 / 11498


Description:


30. What channel(s) did you use to request help?

(multiple choice, with other)

Channel Count Perc.
N/A (didn't request help about Git) 2589 39.6%
 
git mailing list (git@vger.kernel.org) 275 4.2%
 
msysGit mailing list / Google Group 54 0.8%
 
"Git for Human Beings" Google Group 63 1.0%
 
IRC (#git) 680 10.4%
 
IRC (other git/SCM related, e.g. #github) 179 2.7%
 
IRC (other than above) 303 4.6%
 
request in blog post or on wiki 240 3.7%
 
asking git guru/colleague 2072 31.7%
 
project mailing list, or IRC, or forum 319 4.9%
 
Twitter or other microblogging platform 590 9.0%
 
instant messaging (IM) like XMPP/Jabber 502 7.7%
 
StackOverflow or other StackExchange site 2332 35.7%
 
other (please specify) 326 5.0%
 
Base 6538 / 11498


Analysis:
Most used way to request help about Git (help 'channel') is asking on StackOverflow or other StackExchange site, with 36% of responders (!), slightly higher than previous year winner of asking somebody better versed in Git personally, with 32%.

Note that this year responses will require processing to be able to compare with results from previous surveys, as in this survey we have "N/A (didn't request help)" answer with 40% of responses.


31. What gave you most trouble learning, understanding and using Git?

(free-form essay)

 TO TABULARIZE
 2907 / 11498 non-empty responses


32. Which communication channel(s) do you use?

Do you read the mailing list, or watch IRC channel?

(multiple choice)

Channel Count Perc.
git@vger.kernel.org (main) 387 38.0%
 
Git for Human Beings (Google Group) 120 11.8%
 
msysGit 108 10.6%
 
#git IRC channel 537 52.8%
 
#git-devel IRC channel 35 3.4%
 
#github or #gitorious IRC channel 210 20.6%
 
#revctrl IRC channel 5 0.5%
 
Base 1018 / 11498


33. Did you give help about Git? What medium did you use?

(multiple choice, with other)

Answer Count Perc.
N/A (didn't give help about Git) 1223 20.4%
 
talk / private explanation 4287 71.7%
 
comment on somebody else blog 725 12.1%
 
IRC channel 1017 17.0%
 
presentation / seminar 587 9.8%
 
workshop or other form of schooling / training 380 6.4%
 
blog post / webpage 604 10.1%
 
article in magazine 27 0.5%
 
book or ebook 79 1.3%
 
git mailing list 116 1.9%
 
other mailing list 250 4.2%
 
email 1320 22.1%
 
Usenet (newsgroup) 16 0.3%
 
instant messaging (IM) like XMPP/Jabber 1234 20.6%
 
forum or wiki 435 7.3%
 
StackOverflow or similar 834 13.9%
 
remote aid / control tool, like FogCreek Copilot 45 0.8%
 
Other, please specify 87 1.5%
 
Base 5982 / 11498 52.0%


Analysis:
Compared to "getting help" question, 72% of responders gave help via talk / private explanation, i.e. answered questions about Git from colleaugue. Around the same number (about 20%) didn't give help about Git as gave help via email or instant messaging. Note that only 14% of responders gave help via StackOverflow or similar site... but such posting would serve large number of people requesting / searching for help.


34. What gave you most trouble explaining and teaching Git?

(free-form essay)

 TO TABULARIZE
 1422 / 11498 non-empty responses


About this survey.

35. How did you hear about this Git User's Survey?

(single choice, with other)

Answer Count Perc.
git mailing list 230 3.3%
 
git-related mailing list (msysGit, Git for Human Beings, ...) 53 0.8%
 
mailing list or forum of some project 225 3.2%
 
#git IRC channel topic 23 0.3%
 
announcement on IRC channel 66 0.9%
 
git homepage 251 3.6%
 
git wiki 20 0.3%
 
git hosting site 1315 18.7%
 
software-related web site 308 4.4%
 
news web site or social news site (e.g. Digg, Reddit) 1592 22.7%
 
blog (or blog planet) 649 9.2%
 
other kind of web site 117 1.7%
 
Twitter or other microblogging platform 572 8.1%
 
Google+, Facebook, or other social platform 314 4.5%
 
other - please specify 1287 18.3%
 
Base 7022 / 11498
Personal tools