git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [RFC] Proposed questions for "Git User's Survey 2016"
@ 2016-08-20 18:56 Jakub Narębski
  2016-08-20 21:29 ` Eric Wong
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Jakub Narębski @ 2016-08-20 18:56 UTC (permalink / raw)
  To: git; +Cc: Doug Rathbone, David Bainbridge, Stefan Beller

Hello,

As I wrote previously here, I am thinking about returning to doing the
Git User's Survey this year.

  Message-ID: <577E6F32.7020007@gmail.com>

  https://marc.info/?l=git&m=146790381602547&w=2
  https://public-inbox.org/git/577E6F32.7020007%40gmail.com/

The previous email, which did not receive many responses, was a query about
the direction we want to have for Git User's Survey 2016.  Now I would like
to ask about something more specific: what questions (and answers) you would
like to see in the survey.

Below is my initial proposal; my comments are prefixed with "JN> ".
----------------------------------------------------------------------------

#### About you

JN> This section gives us a bit of demographical information about survey
JN> responders.  Is it useful?


01. What country do you live in? (Country of residence)
    (free-form single line)

JN> Survs.com do not offer list of countries as a pre-defined drop-down
JN> list (select, with search), and it looks like it is not as easy as
JN> I thought (though I could push responsibility to Locale::Country ;-):
JN>
JN>   https://en.wikipedia.org/wiki/List_of_sovereign_states
JN>
JN> This question originally read "What country are you from?"
JN> which might be thought as country of birth... which may not
JN> exist any longer.


02. How old are you (in years)?
    (single number)

JN> Perhaps a selection of age ranges would be better (if less precise).
JN> We could follow the example of StackOverflow Survey here:

   ( ) <20
   ( )  20-24
   ( )  25-29
   ( )  30-34
   ( )  35-39
   ( )  40-49
   ( )  50-59
   ( ) >60


03. Your gender
    (single choice)

   ( )  Man
   ( )  Woman
   ( )  Other
   ( )  Prefer to not disclose

JN> This would be new question, to check if we good good diversity
JN> among survey responders (and not skewed in particular direction).
JN> Though I am not sure if it is a good idea...


04. How would you describe your occupation / role as Git user?
    (multiple choice with other, limit to 3 selections (?))

   [ ] Developer
   [ ] Programmer
   [ ] Engineer
   [ ] Analyst
   [ ] Manager / Leader
   [ ] Maintainer / Reviewer / Sub-maintainer
   [ ] DevOps
   [ ] Administrator
   [ ] Designer
   [ ] Artist / Writer
   [ ] Tester / QA
   [ ] Expert
   [ ] Student
   [ ] Researcher
   [ ] Teacher
   [ ] Other, please specify

JN> This is a new question, based somewhat on "Developer Occupations"
JN> and "Programmers, Engineers, and Developers" questions in 
JN> StackOverflow Survey.  It is here to find out if different
JN> occupation leads to different ways of using Git, and if there
JN> is some occupation that is not well served by Git.
JN>
JN> The list of "occupations" is preliminary, and I would like to
JN> ask for your thought about possible answers.
  

05. Have you ever contributed to Git project (code, documentation, etc.)?

   ( )  Yes
   ( )  No
   ( )  Maybe

JN> This is here to correlate other responses with Git developers.
JN> In 20012 it was called "Does Git include code or documentation by you?
JN> (Are you a Git developer?)".  I think this way of stating it is better;
JN> if it is here to stay - the number of active and past developers is
JN> not very large.  On the other hand it can be used to detect if we
JN> have a bias due to the way survey is announced.


JN> NOTE: earlier surveys have had two additional questions that were
JN> since removed (to make survey shorter, among others).  Those were:
JN>
JN>  - What is your preferred [non-programming] language?
JN>  - Which programming languages / technologies you are proficient with?
JN>
JN> Well, the latter was only about programming languages, originally.


#### Getting started with Git

JN> This is probably not the best name for this section of questions.

06. Have you found Git easy to learn?
    (single choice)

  * Very easy
  * Easy
  * Reasonably easy
  * Hard
  * Very hard

07. Have you found Git easy to use?
    (single choice)

  * Very easy
  * Easy
  * Reasonably easy
  * Hard
  * Very hard

JN> Those two questions, considered alone, doesn't tell us much.  If one
JN> uses git, then usually one does not think it is too hard to use
JN> (unless forced to use git by external circumstances, like project
JN> he/she works on using git).  On the other hand those two questions
JN> together give us some mesaure of Git's learning curve, telling us
JN> if people consider git easy to use but hard to learn, or vice versa ;-)
JN>
JN> This question was present from the beginning of Git User's Survey,
JN> so it can be used to compare with historical surveys, and see
JN> Git evolution in motion (hopefully in good direction, that is getting
JN> easier to learn and use).


08. Which Git version(s) are you using?
   (multiple choice, with other)

 + pre 2.0
 + 2.0.x to 2.5.x
 + 2.6.x
 + 2.7.x
 + 2.8.x
 + 2.9.x or newer

 + 2.10.x-rcN version (release candidate)
 + minor (maintenance) release 1.x.y.z
 + 'master' branch of official git repository
 + 'next' branch of official git repository
 + version from msysGit / Git for Windows fork repository
 + alternate Git implementation (JGit and similar)

 + other, please specify

JN> I don't know if it is a good range.  One thing that might be good
JN> to know is people using outdated Git, perhaps because it is version
JN> bundled with GUI tool (e.g. using last msysGit instead of Git for
JN> Windows, that is 1.9.x at latest).
JN>
JN> If we want connection with last survey, from 2012, we would
JN> need to go back down to 1.7.x or earlier version...


09. On which operating system(s) do you use Git?
    (multiple choice, with other)

 + GNU/Linux
 + MS Windows
 + macOS
 + *BSD (FreeBSD, OpenBSD, NetBSD, etc.)
 + Android
 + iOS
 + other Unix
 + other, please specify

JN> This question was a part of previous surveys, but it was asked
JN> a bit later.  This year I skipped asking about Cygwin vs native
JN> Git for Windows.  Note that I am not sure if Android and iOS,
JN> added just now, should be present here.


10. Rate your own proficiency with Git
    (single choice, rating)

 1. novice
 2. casual, needs advice
 3. everyday use
 4. can offer advice
 5. know it very well

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

JN> This question tell us penetration of announcements of the survey;
JN> did we get to all users, or only to git gurus?  It is also useful
JN> for correlating with other responses, for example to get to know
JN> which Git features are used by novices, and which by gurus.
JN>
JN> Note that the answers are rather here to stay because of
JN> "backwards compatibility", that is to be able to easy compare
JN> with earlier surveys.


JN> I have moved questions around, so we now have 5 questions per
JN> section.  I wonder if it is something worth having (from the
JN> point of view of answering survey).


#### How do you use Git

11. I use Git for (check all that apply):
    (multiple choice, with other)


Note that those choices are neither orthogonal nor exclusive.  One
might want to check multiple answers even for a single repository.

JN> Answers to this question probe different direction.
JN> We might want to split this question... but on the other hand
JN> I think we'd rather reduce the number of questions in the survey.

 + work and work-related projects
 + unpaid projects
 
 + closed-source projects
 + OSS development, public domain, and published & unlicensed
 + private (unpublished), in house projects

JN> It was "proprietary projects" instead of "closed-source projects"
JN> in previous version(s) of Git User's Survey

 + code (programming) and its documentation
 + data, documents, static assets (without code)

 + sharing data or synchronization
 + managing configuration files
 + backup
 + frontend / fat-client to other SCM (e.g. git-svn, git-p4)

JN> I'm not sure if the last answer should not be moved to
JN> question about other version control systems

 + other, please specify


11. How do/did you obtain Git (install and/or upgrade)?
    (multiple choice, with other)

JN> Perhaps this question should be moved to previous section.
JN> If yes, should we keep it to 5 questions per section, that
JN> is move or remove other question then?

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

 + binary package
 + source package or script (automatic compiling)
 + source tarball/archive (extract, make, make install)
 + pull from repository, and compiled
 + bundled with GUI or other kind of tool
 + preinstalled / sysadmin job

 + other - please specify (if none of the above apply)

JN> The "bundled" answer is new.  I guess that most people would
JN> not check if GUI brought it own Git (sometimes very outdated;
JN> SourceTree for Windows bundled git 1.9.7 (sic!)) and is using
JN> it instead of system- or user-installed Git.
JN>
JN> Note for example that Eclipse brings JGit, implementation
JN> of Git in Java, and would be covered by "bundled" answer...


JN> NOTE: I think we can skip
JN>
JN>   What Git interfaces, implementations and frontends do you use?
JN>
JN> question.  What do you think?


12. What kind of Git tools do you use?
    (multiple choice, with other)

 + editor/IDE VC integration (e.g. EGit (for Eclipse), TextMate bundle, magit (for GNU Emacs))
 + filemanager / shell extension (e.g. git-cheetah, TortoiseGit, Git Extension)
 + filesystem interface (e.g. gitfs, figfs)
 + graphical history viewer/browser (e.g. gitk; might be a part of GUI tool)
 + graphical commit tool (e.g. git-gui; might be a part of GUI tool)
 + graphical diff and/or merge tool (e.g. Kompare, Meld; might be a part of GUI tool)
 + graphical blame or pickaxe tool (e.g. 'git gui blame'; might be a part of editor plugin)
 + tool to manage git repositories (e.g. Gitolite)
 + git-instaweb, or self-hosted web interface (e.g. gitweb, cgit)
 + self-hosted project hosting solution (e.g. GitLab, GitHub FI, GitPrep, Phabricator)
 + self-hosted code review or audit system (e.g. Gerrit, Differential)
 + patch or patch series management interface (e.g. StGit, Guilt, git-series)
 + command line tab-completion, or equivalent (e.g. git-completion.sh)
 + shell prompt, or widget, desklet, etc. (e.g. git-prompt / __git_ps1(), git-radar)
 + git aware pager, or syntax highlighter (e.g. tig, diff-highlight)

 + credentials helper, or askpass wrapper
 + remote helper to store repository (e.g. FTP, Amazon S3, Dropbox)
 + remote helper to interact with foreign repositories (e.g. git-hg)

 + my own scripts (for daily use)
 + my own scripts (for special tasks)

 + other, please specify

JN> Does this list cover all kind of tools that one might be using,
JN> or is some category missing from the above list (slightly modified
JN> and extended compared to previous surveys)?


13. List Git tools that you are using (comma separated, or one per line)
13. List git tools that you use (optional)
    (textarea)

JN> Open ended questions are often a pain to analyze, but I don't think
JN> this one would be a problem.  Instead of free-form text field we
JN> could provide a list of most common GUIs and other tools... but I am
JN> not sure what they are, and we are risking skewing results.  On the
JN> other hand free-form might mean people forgetting about tool they use,
JN> or used in the past; it is also a bit more work, to write and not
JN> only to select.


14. How often do you use Git command line (and other command line tools)?
    (single-choice, rating-like)

  1. never
  2. rarely
  3. often
  4. only (always)

JN> This is a new question, replacing somewhat "What Git interfaces,
JN> implementations and frontends do you use?".  I'm not quite sure if
JN> it is a question worth to have.


15. Which git hosting site(s) do you use for your project(s)?
    Please check only hosting sites where you publish/push to (with git)
    (multiple choice, with other)

JN> I think it should be limited to *main* hosting sites; there is
JN> always the "other, please specify" option

  + GitHub
  + Bitbucket
  + GitLab

  + SourceForge
  + Savannah or Gna!
  + CodePlex

  + git hosting site for related projects (e.g. OLPC, freedesktop.org)
  + company internal / self-hosted

  + other, please specify

JN> Gitorious was acquired/changed into GitLab, Google Code is in archive
JN> mode, BerliOS is no longer.  CodePlex is new; many hosting sites that
JN> were present are missing, but could be added: Assembla, Beanstalk,
JN> CloudForge (formerly Codesion), Codebase, Deveo, Unfuddle, perhaps
JN> even Alioth (Debian), Fedora Hosted, Launchpad (Ubuntu)
JN>
JN> "Company internal" and "self-hosted" got concatenated into one answer.

JN> This question could be moved to the next section.


#### Git workflows, or
#### Interacting with other repositories

16. How do you fetch/get changes from upstream repositories
    and/or other developers?
    (multiple choice, with other)

 + git protocol        (e.g. git://git.example.com/repo.git)
 + ssh                 (e.g. ssh+git://git.example.com/repo.git,
                             git.example.com:/srv/scm/repo.git)
 + http                (e.g. http://git.example.com/repo.git)
 + rsync (DEPRECATED)  (e.g. rsync://git.example.com/repo.git)
 + filesystem          (e.g. /path/to/repo.git, file:///path/to/repo.git)
 + applying patches    (e.g. git-am from emails)
 + via git-bundle
 + foreign SCM (fat-client or remote helper, e.g. git-svn, git-p4, gitifyhg)

 + Other, please specify

JN> Nobody should be using rsync, as it got broken and nobody noticed,
JN> and then removed from Git.  Note that "applying patches" is new,
JN> because question got extended to cover getting changes from other
JN> developers (in maintainer role), not only from upstream repo.
JN> This question is about getting changes into local work repository.


17. How do you publish/propagate your changes?
    (multiple choice, with other)

 + push via SSH
 + push via HTTP / HTTPS
 + push via git protocol (NOT RECOMMENDED)
 + push (unknown)
 + pull request (+ any form of announcement / notification)
 + format-patch + email
 + format-patch + other (e.g. reviewboard, issue tracker or forum)
 + git bundle

 + git-svn (to Subversion repository)
 + git-p4 (to Perforce repository)
 + foreign SCM interface (other than mentioned above)

 + other - please specify


XX. How do you integrate changes from others?
    (multiple choice, with other)

 + merge  (includes 'git pull')
 + rebase (includes 'git pull --rebase')
 + reapply (e.g. git-am from patches)
 + git-imerge (third-party tool)

 + git mergetool or other graphical merge tool
 + graphical rebase tool

JN> This is proposed new question about workflows.


XX. What types of branches can be found in your repositories?
    (repositories you use or are contributing to)
    (multiple choice, with other)

 + there is only a single branch
 + development/graduation branches (master/stable, next/devel/unstable etc.)
 + per-release maintenance branches
 + proposed-updates integration testing and WIP publish branch

 + bugfix / hotfix branches (topic branches for bug fixes)
 + release branches (for preparing a new release)
 + other short-lived topic / feature branches

 ? orphan branches (with disconnected history, e.g. gh-pages, todo)

 + other types and uses, please describe


JN> This is new question.  It doesn't ask about use of git-flow, but
JN> is close.


#### How you use Git

18. Which of the following Git features do you use?
    (multiple choice, with other)

 + end-of-line conversion (crlf or eol)
 + custom diff/merge driver
 + textconv
 + other gitattributes (e.g. clean/smudge filter)

 + word diff
 + merge strategy options (e.g. -Xrenormalize)

 + submodules (subprojects)
 + subtree merge (e.g. git-subtree, git-stree)

 + partial (sparse) checkout
 + shallow clone (e.g. "git clone --depth=<n>")

 + multiple worktrees (e.g. git-worktree)

 + alternates mechanism (sharing object database)
 + stash and autostash (also "git stash --keep-index")
 + detaching HEAD (e.g. "git checkout --detach", "git checkout <tag>")
 + orphan branches, with disconnected history (gh-pages, todo, man, etc.)
 + commit message templates, and/or commit-related hooks
 + interactive commit / per-hunk comitting / partial commit / splitting commits
 + interactive rebase, fixup commits (small scale history editing)
 + git-filter-branch or equivalent, like BFG Repo Cleaner (large history rewriting)
 + finding errors in history with bisect (also "git bisect run <script>")
 + tracking code movement with git-blame ("git blame -M" etc.)
 + committing with dirty tree (keeping some changes uncommitted)
 + reflog (including @{1}, @{yesterday}, @{-1} / -, 'git log -g')

 + git-aware shell prompt
 + git aliases, shell aliases for git, or own git scripts

 + one-way interaction with other SCMs (from SCM to git)
 + two-way interaction with other SCMs (from SCM to git, from git to SCM)

 + object overlays (git replace or grafts)
 + object annotation (git notes)

 + Other, please specify

JN> The problem is come up not with exhaustive list of features: there are
JN> too many of them to list.  The problem is coming up with list of
JN> important and used enough often features (and those interesting to
JN> know about).
JN>
JN> So: what features should be included in this list?  What features
JN> should be removed from above list of answers?
JN>
JN> Should this question be split into parts?  Should we ask how often
JN> those features are used (matrix-form question)?


19. Describe what features would you like to have in Git
    (free form, essay length / textarea)

JN> The Git User's Survey 2012 (last survey) have had also
JN> "17. Which of the following features would you like to see
JN> implemented in git?", with a list of answers.  But as Git development
JN> is not directed by surveys, I'm not sure if it is worth it.
JN>
JN> Such free-form question would be a pain to analyze well, but it
JN> could also be a source of a good inspiration.


#### Other version control systems

20. What other version control systems (SCM) do you use beside Git?
   (multiple choice, with other)

Explanation: "using" version control system here means using
it to actively contribute (propose changes or accept proposals),
and not only e.g. using it to download software.

JN> Perhaps we should split it into two questions, one about
JN> centralized version control systems, one about distributed
JN> ones.
JN>
JN> Clarification (narrowing of scope) is new.

 + SCCS
 + RCS

 + CVS
 + Subversion

 + Perforce
 + ClearCase
 + AccuRev SCM
 + StarTeam
 + Visual SourceSafe
 + Team Foundation Server
 + Visual Studio Team System / ALM
 + Rational Team Concert


 + Bazaar (bzr)
 + Mercurial (hg)
 + Monotone
 + Darcs
 + SVK
 + Fossil
 + Veracity

 + BitKeeper
 + Code Co-op
 + TeamWare
 + Plastic SCM
 + Veracity

 + other, please specify

JN> Is there any *prominent* and important version control system
JN> missing from this list?  Are there systems that are so rare that
JN> they should be removed from the list?


21. How does Git compare to other SCM tools you have used?
    (single choice, rating)

Git is ____ that other version control systems I have used.

 * better
 * equal (comparable)
 * it depends (in some matters better, in some matters worse)
 * worse
 * cannot compare (have not used anything beside Git)


#### What you think of Git?

22. Overall, how happy are you with Git?
    (single choice, rating)

 * unhappy
 * not so happy
 # neutral
 * happy
 * very happy
 * completely ecstatic

JN> I'm not sure if this question is at all useful.
JN>
JN> There is also problem, that the current wording is considered biased
JN> by some, but on the other hand changing wording of answers would make
JN> it impossible to compare it to answers from previous surveys...
JN> Though I have added 'neutral' as an answer.  Perhaps I should add
JN> most negative answer to make rating balanced?
JN>
JN>  # hate Git with a passion of thousands suns


23. In your opinion, which areas in Git needs improvement?
    Please state your preference.
    (matrix)

   Columns: don't need / a little / some / much
 + user-interface (UI and UX)
 + core documentation
 # messages, error messages, advices
 + performance
 + more features
 + tools (e.g. GUI)
 + localization (translation) of messages
 # translated documentation (manpages)

JN> Are there any general areas that are missing from this list?
JN> What are they?
JN>
JN> Note that "translated documentation" and "messages..." are new.


24. How do you compare the current Git version with the version from one year ago?
    (single choice)

 * better
 * no changes
 * worse

 * cannot say
 * Git used for less than 1 year

JN> This question is mainly excuse for providing list of main changes
JN> from the year ago, to show off how Git continues improving.
JN> List of new features and other changes taken from RelNotes.

Description:
~~~~~~~~~~~~
The version from approximately one year ago is x.y.z from DD-MM-YYYY
(x.y.v is from DD-MM-YYYY).

Changes since x.y.z include:

[TO BE DONE]


#### Documentation. Getting help. ==

25. How useful have you found the following forms of Git documentation?
    (matrix)

  Columns: never used / not useful / somewhat / useful
 ------------------------------------------------------
 + help distributed with git (manpages, tutorials, guides, etc.)
 + "Pro Git" book
 + Git Wiki
 + Git Reference site
 + hosting site tutorials and help, etc.
 + 'git' section of StackOverflow Documentation
 + other on-line help
 + printed books (or ebooks)

Description:
~~~~~~~~~~~~
* help distributed with Git includes their online version:
  - https://git.github.io/htmldocs/git.html
  - https://git-scm.com/docs/
  - https://www.kernel.org/pub/software/scm/git/docs/
* Git Wiki was to be found at http://git.wiki.kernel.org
* Git Reference site can be found at http://gitref.org
* StackOverflow Documentation refers to http://stackoverflow.com/documentation/git
* "Pro Git" can be found at https://git-scm.com/book and https://progit.org
* hosting sites tutorials include
  - https://help.github.com/
  - https://www.atlassian.com/git/
  ? https://www.git-tower.com/learn/git/ebook
* help distributed with git include manpages, manual, tutorials, HOWTO,
  release notes, technical documentation, contrib/examples/

JN> Should we split those answers further, e.g. separating on-line
JN> tutorials and guides, from on-line tips etc.?
JN>
JN> This is also educational, showing where one can find documentation;
JN> note that StackOverflow Documentation in yet in Beta.


25. What [channel(s)] do you use to request/get help about Git [(if any)]?
   (multiple choice, with other)

 + git mailing list (git@vger.kernel.org)
 + "Git for Human Beings" Google Group
 + msysGit mailing list / Google Group
 + IRC (#git)
 + IRC (other git/SCM related, e.g. #github)
 + IRC (other than above)
 + request in blog post or on wiki
 + asking git expert/git guru/colleague/friend
 + project mailing list, or IRC, or forum
 + Twitter or other microblogging platform
 + instant messaging (IM) like XMPP/Jabber
 + StackOverflow or other StackExchange site
 + search specific site or whole web (e.g. with Google)

 + find and read book or ebook
 + watch an instructional video or course
 + attend a seminar, webinar or lecture about Git (interactively)

 + N/A (didn't request help about Git)

 + other (please specify)

JN> Are there any main channels of requesting help that I have missed in
JN> the above list of answers?  What are they, and why do you think they
JN> are important enought to warrant inclusion in above list?
JN>
JN> Should we ask the opposite: how one provides help (if one does)?


26. Which books about Git have you read and recommend, or plan to read?
    (multiple choice, with other)

JN> New question.  List of answers based partially on the "Books" section
JN> in https://git-scm.com/documentation/external-links , ordered by date
JN> of latest edition to within a year.
JN>
JN> Should "plan to read" be included in question, or not?

 + "Pragmatic Version Control Using Git", by Travis Swicegood (2008)
 + "Pragmatic Guide to Git", by Travis Swicegood (2010)
 ? "Version Control by Example", by Eric Sink (2011)
 + "Version Control with Git", by by Jon Loeliger and Matthew McCullough
   (1st ed. 2009, 2nd ed. 2012)
 + "Git: Version Control for Everyone", by Ravishankar Somasundaram
   (2013)
 + "Pro Git", by Scott Chacon and Ben Straub (1st ed. 2009, 2nd ed. 2014)
 + "Git Version Control Cookbook", by Aske Olsson and Rasmus Voss (2014)
 + "Git in Practice", by Mike McQuaid (2014)
 + "Git for Teams", by Emma Hogbin Westby (2015)
 + "Git Essentials", by Ferdinando Santacroce (2015)
 + "Mastering Git", by Jakub Narębski (2016)

JN> What *good* books should be added here?  I'd rather add only those books
JN> which have a paper version, and not be ebook-only (or be on a website
JN> only).


#### About this survey. Open forum.

27. How did you hear about this Git User's Survey? ===
    (single choice, with other)

 * git mailing list
 * git-related mailing list (e.g. msysGit, Git for Human Beings)
 * mailing list or forum of some project
 * #git IRC channel topic
 * announcement on IRC channel
 * git homepage
 * git wiki
 * git hosting site (or blog related to such site)
 * software-related web site
 * news or social news site (e.g. Digg, Reddit)
 * blog (or blog planet)
 * other kind of web site
 * Twitter or other microblogging platform

 * other - please specify

JN> This list would of course be updated to reflect the list of (planned)
JN> announcement channels.  I also plan to use separate "channels"
JN> (separate shorter URLs) for different announcements.
JN>
JN> I'm not sure how useful would it be.


28. Other comments and suggestions
    What other comments or suggestions do you have,
    that are not covered by the questions above?
    (essay length / textarea)

JN> This would be hard to analyze...

-- 
Jakub Narębski

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-20 18:56 [RFC] Proposed questions for "Git User's Survey 2016" Jakub Narębski
@ 2016-08-20 21:29 ` Eric Wong
  2016-08-25 10:26   ` Jakub Narębski
  2016-08-21 23:59 ` Andrew Ardill
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 15+ messages in thread
From: Eric Wong @ 2016-08-20 21:29 UTC (permalink / raw)
  To: Jakub Narębski; +Cc: git, Doug Rathbone, David Bainbridge, Stefan Beller

Jakub Narębski <jnareb@gmail.com> wrote:
> #### Other version control systems
> 
> 20. What other version control systems (SCM) do you use beside Git?
>    (multiple choice, with other)
> 
> Explanation: "using" version control system here means using
> it to actively contribute (propose changes or accept proposals),
> and not only e.g. using it to download software.
> 
> JN> Perhaps we should split it into two questions, one about
> JN> centralized version control systems, one about distributed
> JN> ones.

Perhaps there can be a question about use and interest of other
decentralized/federated systems which could be potential
collaboration tools or transports for git.
e.g. ipfs, gpg, tor, diaspora, *coin, tent, xmpp, matrix, ...

And another about how they use email: webmail, GUI client,
console client, phone app, none at all.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-20 18:56 [RFC] Proposed questions for "Git User's Survey 2016" Jakub Narębski
  2016-08-20 21:29 ` Eric Wong
@ 2016-08-21 23:59 ` Andrew Ardill
  2016-08-25 14:53   ` Jakub Narębski
  2016-08-26  6:15 ` Eric Wong
  2016-08-27 22:00 ` [RFCv2] Proposed questions for "Git User's Survey 2016", take two Jakub Narębski
  3 siblings, 1 reply; 15+ messages in thread
From: Andrew Ardill @ 2016-08-21 23:59 UTC (permalink / raw)
  To: Jakub Narębski
  Cc: git@vger.kernel.org, Doug Rathbone, David Bainbridge,
	Stefan Beller

On 21 August 2016 at 04:56, Jakub Narębski <jnareb@gmail.com> wrote:
> 25. What [channel(s)] do you use to request/get help about Git [(if any)]

It may also be useful to ask how people hear news about git, such as
when a new release comes out. Not sure if worth a separate question,
as there is a lot of crossover in the resources available for this and
for requesting help, but knowing this information would help us
understand what kinds of users are responding and which communication
channels are effective for git news.

Related, it might be worth asking how often people upgrade their git
clients and servers, particularly in corporate/managed environments.
This question would ask two things, how long after a new release comes
out do you install it, and do you install every update that comes out
or do you skip versions. I suspect many would just use whatever is
released in their distro and update at the same time as they update
other packages, but it would be interesting to know if people, for
example, only upgrade their managed environments every year/6 months
or something to avoid introducing changes to their users.

Regards,

Andrew Ardill

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-20 21:29 ` Eric Wong
@ 2016-08-25 10:26   ` Jakub Narębski
  0 siblings, 0 replies; 15+ messages in thread
From: Jakub Narębski @ 2016-08-25 10:26 UTC (permalink / raw)
  To: Eric Wong; +Cc: git, Doug Rathbone, David Bainbridge, Stefan Beller

W dniu 20.08.2016 o 23:29, Eric Wong pisze:
> Jakub Narębski <jnareb@gmail.com> wrote:
>> #### Other version control systems
>>
>> 20. What other version control systems (SCM) do you use beside Git?
>>    (multiple choice, with other)
>>
>> Explanation: "using" version control system here means using
>> it to actively contribute (propose changes or accept proposals),
>> and not only e.g. using it to download software.
>>
>> JN> Perhaps we should split it into two questions, one about
>> JN> centralized version control systems, one about distributed
>> JN> ones.
> 
> Perhaps there can be a question about use and interest of other
> decentralized/federated systems which could be potential
> collaboration tools or transports for git.
> e.g. ipfs, gpg, tor, diaspora, *coin, tent, xmpp, matrix, ...
> 
> And another about how they use email: webmail, GUI client,
> console client, phone app, none at all.

I am of two minds about those (and similar) questions.  One
one hand side, these are quite interesting (especially correlated
with other answers).  On the other hand, they are not about Git,
and we have large number of questions already - I'd prefer if
number of questions was below 50-60.

That said, those questions could be added as a separate section:

#### Other tools

XX. How do you read and answer email (check all that apply)?
    (multiple choice, possibly with other)

 + GUI client (e.g. Outlook, Thunderbird, Evolution, KMail)
 + console client (e.g. pine, alpine, mutt)
 + webmail or web client (e.g. GMail, Hotmail; HyperKitty)
 + phone app (e.g. K-9 Mail, Airmail, CloudMagic)
 + I don't use email

XX. Which of the decentralized/federated systems do you use
    or are interested in?

JN> Have I missed some interesting and Git-relevant federated system?

 + IPFS
 + PGP / GPG
 + Tor
 + diaspora*
 + Bitcoin, Litecoin, Etherium, etc.
 + tent.io
 + XMPP / Jabber
 + OMEMO
 + Matrix.org
 + pump.io
 + other, please specify


There are a few other questions that we might want to ask if
such section is to be added to the Git User's Survey 2016:

XX. Which of IDEs and programmer's editors do you use [with Git]?
    (multiple choice, with other)

JN> Have I missed some popular IDE or programmers editor?

 + Visual Studio
 + Eclipse
 + NetBeans
 + Xcode
 + IntelliJ IDEA / PhpStorm / WebStorm
 + KDevelop
 + Anjuta

 + Sublime Text
 + TextMate
 + Emacs
 + Vim
 + Atom
 + Brackets
 + Geany

 + other IDE or editor, please specify


XX. Which of the programming languages are you proficient with?
    (multiple choices, with other)

JN> Based on TIOBE index from August 2016, Language Trends on GitHub
JN> 2015, GitHut (languages in GitHub), Stack Overflow Developer
JN> Survey 2016, and my own preferences; in no particular order

 + C
 + C++
 + C#
 + Java
 + VisualBasic.NET 
 + Objective-C

 + Python
 + Perl
 + PHP
 + JavaScript
 + Ruby
 + shell scripe

 + CSS, LESS, SASS etc.
 + HTML, HTML5
 + TeX, LaTeX, ConTeXt
 + SQL

 + Go
 + Rust
 + Swift
 + Scala
 + Haskell

-- 
Jakub Narębski


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-21 23:59 ` Andrew Ardill
@ 2016-08-25 14:53   ` Jakub Narębski
  2016-08-26  6:58     ` Andrew Ardill
  0 siblings, 1 reply; 15+ messages in thread
From: Jakub Narębski @ 2016-08-25 14:53 UTC (permalink / raw)
  To: Andrew Ardill
  Cc: git@vger.kernel.org, Doug Rathbone, David Bainbridge,
	Stefan Beller

W dniu 22.08.2016 o 01:59, Andrew Ardill pisze:
> On 21 August 2016 at 04:56, Jakub Narębski <jnareb@gmail.com> wrote:
>> 25. What [channel(s)] do you use to request/get help about Git [(if any)]
> 
> It may also be useful to ask how people hear news about git, such as
> when a new release comes out. Not sure if worth a separate question,
> as there is a lot of crossover in the resources available for this and
> for requesting help, but knowing this information would help us
> understand what kinds of users are responding and which communication
> channels are effective for git news.

How would you propose such question would look like, and what proposed
answers would be (if it were not a free-text / essay question)?

Note that there might be a problem of severe bias: people who heard
about Git User's Survey 2016 are probably ones that watch news about Git.
Still, it would be useful to know if people read RelNotes...
 
> Related, it might be worth asking how often people upgrade their git
> clients and servers, particularly in corporate/managed environments.
> This question would ask two things, how long after a new release comes
> out do you install it, and do you install every update that comes out
> or do you skip versions. I suspect many would just use whatever is
> released in their distro and update at the same time as they update
> other packages, but it would be interesting to know if people, for
> example, only upgrade their managed environments every year/6 months
> or something to avoid introducing changes to their users.

That is, if people have a pattern to their upgrade of Git, and can
tell how often they upgrade.

XX. How often you upgrade Git?
    (multiple choice or single choice?)

 * as soon as new version is released
 * when there is new binary package / distribution package
 * when updating distribution / system
 * around every month, or more often
 * around every 6 months or more often
 * I use what is installed on system

Something like that?

Regards,
-- 
Jakub Narębski


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-20 18:56 [RFC] Proposed questions for "Git User's Survey 2016" Jakub Narębski
  2016-08-20 21:29 ` Eric Wong
  2016-08-21 23:59 ` Andrew Ardill
@ 2016-08-26  6:15 ` Eric Wong
  2016-08-26 11:52   ` Jakub Narębski
  2016-08-27 22:00 ` [RFCv2] Proposed questions for "Git User's Survey 2016", take two Jakub Narębski
  3 siblings, 1 reply; 15+ messages in thread
From: Eric Wong @ 2016-08-26  6:15 UTC (permalink / raw)
  To: Jakub Narębski; +Cc: git, Doug Rathbone, David Bainbridge, Stefan Beller

Not directly-related to the survey questions, but can you ensure
it's accessible to folks without JavaScript/graphics, and
perhaps also ensure it is on a host that is Tor-friendly?

Graphics setups often require non-Free firmware or drivers for
acceptable performance; and there are also visually-impaired
users who will need screen readers or Braille.

Thanks.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-25 14:53   ` Jakub Narębski
@ 2016-08-26  6:58     ` Andrew Ardill
  2016-08-26 11:42       ` Jakub Narębski
  0 siblings, 1 reply; 15+ messages in thread
From: Andrew Ardill @ 2016-08-26  6:58 UTC (permalink / raw)
  To: Jakub Narębski
  Cc: git@vger.kernel.org, Doug Rathbone, David Bainbridge,
	Stefan Beller

Hi,

Jakub Narębski <jnareb@gmail.com> wrote:
> Andrew Ardill pisze:
> > Jakub Narębski <jnareb@gmail.com> wrote:
> >> 25. What [channel(s)] do you use to request/get help about Git [(if any)]
> >
> > It may also be useful to ask how people hear news about git, such as
> > when a new release comes out. Not sure if worth a separate question,
> > as there is a lot of crossover in the resources available for this and
> > for requesting help, but knowing this information would help us
> > understand what kinds of users are responding and which communication
> > channels are effective for git news.
>
> How would you propose such question would look like, and what proposed
> answers would be (if it were not a free-text / essay question)?

Something like:

XX. How do you hear about git related news (such as new releases and
community events)?
    (multiple choice or single choice?)
 * I wasn't aware there was any news
 * I don't read any news, but I'm aware of it
 * through news aggregation sites (such as reddit or hacker news)
 * from a newsletter (such as Git Rev News)
 * from a mailing list (such as the git developer or the git for windows list)
 * other

It would be good to allow a list of specific resources to be written
to capture things we don't know about, and specific instances of the
categories above, eg:
"hacker news, git mailing list, git rev news"

> Note that there might be a problem of severe bias: people who heard
> about Git User's Survey 2016 are probably ones that watch news about Git.
> Still, it would be useful to know if people read RelNotes...

Agreed, the intent behind the question is to work out what are the
effective communication channels so that they can be used more
effectively.


> That is, if people have a pattern to their upgrade of Git, and can
> tell how often they upgrade.
>
> XX. How often you upgrade Git?
>     (multiple choice or single choice?)
>
>  * as soon as new version is released
>  * when there is new binary package / distribution package
>  * when updating distribution / system
>  * around every month, or more often
>  * around every 6 months or more often
>  * I use what is installed on system
>
> Something like that?

Exactly, looks great.

Regards,

Andrew Ardill

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-26  6:58     ` Andrew Ardill
@ 2016-08-26 11:42       ` Jakub Narębski
  0 siblings, 0 replies; 15+ messages in thread
From: Jakub Narębski @ 2016-08-26 11:42 UTC (permalink / raw)
  To: Andrew Ardill
  Cc: git@vger.kernel.org, Doug Rathbone, David Bainbridge,
	Stefan Beller

W dniu 26.08.2016 o 08:58, Andrew Ardill pisze:
> Jakub Narębski <jnareb@gmail.com> wrote:
>> Andrew Ardill pisze:
>>> Jakub Narębski <jnareb@gmail.com> wrote:
[...]
>>>> 25. What [channel(s)] do you use to request/get help about Git [(if any)]
>>>
>>> It may also be useful to ask how people hear news about git, such as
>>> when a new release comes out. Not sure if worth a separate question,
>>> as there is a lot of crossover in the resources available for this and
>>> for requesting help, but knowing this information would help us
>>> understand what kinds of users are responding and which communication
>>> channels are effective for git news.
>>
>> How would you propose such question would look like, and what proposed
>> answers would be (if it were not a free-text / essay question)?
> 
> Something like:
> 
> XX. How do you hear about git related news 
>     (such as new releases and community events)?
>     (multiple choice or single choice?)
>  * I wasn't aware there was any news
>  * I don't read any news, but I'm aware of it
>  * through news aggregation sites (such as reddit or hacker news)
>  * from a newsletter (such as Git Rev News)

I wonder if we should also add

   * through a watched blog (such as GitHub Blog)
   * announcement section in news site (such as LWN.net)

>  * from a mailing list (such as the git developer or the git for windows list)

Are there any other common channels that you (the people) watch for
git news or software news?  Freshmeat / Freecode is defunct, and no
replacement got popular enough...

>  * other

The last would be

   * other, please specify

> It would be good to allow a list of specific resources to be written
> to capture things we don't know about, and specific instances of the
> categories above, e.g.:
> "hacker news, git mailing list, git rev news"

On Survs.com it would require an additional question with free-form
answer, I think.

>> Note that there might be a problem of severe bias: people who heard
>> about Git User's Survey 2016 are probably ones that watch news about Git.
>> Still, it would be useful to know if people read RelNotes...
> 
> Agreed, the intent behind the question is to work out what are the
> effective communication channels so that they can be used more
> effectively.

Right.

Nb. I wonder if this question should not replace the one about
how you heard about the survey (at least if there would be too many
questions).  But I'll have to see how many questions we have now.

Thanks for suggestions,
-- 
Jakub Narębski


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-26  6:15 ` Eric Wong
@ 2016-08-26 11:52   ` Jakub Narębski
       [not found]     ` <CAFO0PHfy_teFFMiuFdjKYohCgRZHNT+Cc8hXOjsPeRTi9gAHPQ@mail.gmail.com>
  2016-08-28  9:49     ` Eric Wong
  0 siblings, 2 replies; 15+ messages in thread
From: Jakub Narębski @ 2016-08-26 11:52 UTC (permalink / raw)
  To: Eric Wong; +Cc: git, Doug Rathbone, David Bainbridge, Stefan Beller

W dniu 26.08.2016 o 08:15, Eric Wong pisze:

> Not directly-related to the survey questions, but can you ensure
> it's accessible to folks without JavaScript/graphics, and
> perhaps also ensure it is on a host that is Tor-friendly?

I plan on using Survs.com (where we have Premium account for free,
thanks to Survs admins).  It has good online analysis tools, allows
to download results in easy parseable format[1], and has support
for multiple channels.

[1]: https://github.com/jnareb/GitSurvey-scripts


It is possible to have a channel without JavaScript and without
cookies (anonymous), at the cost of having to fill the survey
in one go (without cookies and JavaScript you cannot go back
to fill more questions, or change your mind about answers).
The main page of survey would have a link to JavaScript-free
version, and all announcements (by me) would include it.

There would be no graphics that are not purely optional
(decorative); probably there would be just a logo.

I'm not sure how Tor-friendly is this host.
 
> Graphics setups often require non-Free firmware or drivers for
> acceptable performance; and there are also visually-impaired
> users who will need screen readers or Braille.

A question: would it be better to have the whole survey one one
large page, or have it split into pages (with fever questions
per page)?


P.S. With from 3k to 11k responses (I hope for at least 5k)
Git User's Survey is outside of the free tier of most if not
all web survey sites.  I guess I could cobble something together
out of Google Forms, but we would loose online analysis (and
probably some of data that Survs.com makes available in download).

Best regards,
-- 
Jakub Narębski

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
       [not found]     ` <CAFO0PHfy_teFFMiuFdjKYohCgRZHNT+Cc8hXOjsPeRTi9gAHPQ@mail.gmail.com>
@ 2016-08-26 23:46       ` Jakub Narębski
  0 siblings, 0 replies; 15+ messages in thread
From: Jakub Narębski @ 2016-08-26 23:46 UTC (permalink / raw)
  To: David Bainbridge
  Cc: Eric Wong, git, Doug Rathbone, Stefan Beller, Patrick Renaud

[for some reason this email is not yet present on GMane NNTP interface]

On 26 August 2016 at 21:12, David Bainbridge <david.bainbridge@gmail.com> wrote:
> Hi Jakub,
>
> This is excellent news!
>
> As when you last performed the survey it would be useful for us to be able
> to see what the users in our organization (Ericsson) think of Git, and there
> are many more than when the survey was last performed.
>
> Do any other organizations of any type have this need?

Yes, I will offer separate channels (that can be separately analyzed,
and that you can get anonymous data for specific channel) for every
organization and/or company that want's it (within reason)... this time
with names anonymized from start (unless requested not to).

> As for the questions, it might be useful to have a question related to repo
> management systems being used.
> Gerrit
> Kallithea
> Rhodecode
> Atlassian Bitbucket
> GitHub Enterprise
> GitHub.com
> GitLab
> Deveo
> etc.
>
> This is not directly about Git of course but seeing the extent to which
> these are used, and the proportion of users using them might be useful.

This is somewhat present in current version of survey, namely
there is question about *types* of tools (with git repository management,
git hosting tools and code review tools included), and there is free-form
question asking to enumerate tools one uses.  That is, as above, but
more generic, and not multiple choice.

I will think about adding such question.

Regards
-- 
Jakub Narębski

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [RFCv2] Proposed questions for "Git User's Survey 2016", take two
  2016-08-20 18:56 [RFC] Proposed questions for "Git User's Survey 2016" Jakub Narębski
                   ` (2 preceding siblings ...)
  2016-08-26  6:15 ` Eric Wong
@ 2016-08-27 22:00 ` Jakub Narębski
  2016-09-05 21:27   ` [RFCv3] Proposed questions for "Git User's Survey 2016", take three Jakub Narębski
  3 siblings, 1 reply; 15+ messages in thread
From: Jakub Narębski @ 2016-08-27 22:00 UTC (permalink / raw)
  To: git
  Cc: Doug Rathbone, David Bainbridge, Stefan Beller, Eric Wong,
	Andrew Ardill

Hello,

As I wrote previously here, I am thinking about returning to doing the
Git User's Survey this year.

  Message-ID: <577E6F32.7020007@gmail.com>

  https://marc.info/?l=git&m=146790381602547&w=2
  https://public-inbox.org/git/577E6F32.7020007%40gmail.com/

In this email I'd like to propose the revised list of questions (and
answers) for Git User's Survey 2016, following comments to the previous
revision

  Message-ID: <91a2ffbe-a73b-fbb9-96da-9aea4d439e5a@gmail.com>

  https://public-inbox.org/git/91a2ffbe-a73b-fbb9-96da-9aea4d439e5a@gmail.com/

Below is my second proposal; old comments are prefixed with "jn> ", new ones
are prefixed with "JN> ".
----------------------------------------------------------------------------

#### About you

jn> This section gives us a bit of demographic information about survey
jn> responders.  Is it useful?  Should we keep it?


01. What country do you live in? (Country of residence, in English)
    (free-form single line)

jn> Survs.com do not offer list of countries as a pre-defined drop-down
jn> list (select, with search), and it looks like it is not as easy as
jn> I thought (though I could push responsibility to Locale::Country ;-):
jn>
jn>   https://en.wikipedia.org/wiki/List_of_sovereign_states
jn>
jn> This question originally read "What country are you from?"
jn> which might be thought as country of birth... which country
jn> may not exist any longer, like East Germany.


02. How old are you (in years)?
    (single number, or single choice)

jn> Perhaps a selection of age ranges would be better (if less precise).
jn> We could follow the example of StackOverflow Survey here, see below.
JN> Though oldest / youngest info could be interesting...

  * <20
  *  20-24
  *  25-29
  *  30-34
  *  35-39
  *  40-49
  *  50-59
  * >60


03. Your gender
    (single choice)

  *  Man
  *  Woman
  *  Other
  *  Prefer to not disclose

jn> This would be new question, to check if we good good diversity
jn> among survey responders (and not skewed in particular direction).
jn> Though I am not sure if it is a good idea...


04. How would you describe your occupation / role as Git user?
    (multiple choice with other, limit to 3 selections (?))

  + Developer
  + Programmer
  + Engineer
  + Analyst
  + Manager / Leader
  + Maintainer / Reviewer / Sub-maintainer
  + DevOps
  + Administrator
  + Designer
  + Artist / Writer
  + Tester / QA
  + Expert
  + Student
  + Researcher
  + Teacher
  + Other, please specify

jn> This is a new question, based somewhat on "Developer Occupations"
jn> and "Programmers, Engineers, and Developers" questions in 
jn> StackOverflow Survey.  It is here to find out if different
jn> occupation leads to different ways of using Git, and if there
jn> is some occupation that is not well served by Git.
jn>
jn> The list of "occupations" is preliminary, and I would like to
jn> ask for your thought about possible answers.
  

05. Have you ever contributed to Git project (code, documentation, i18n, etc.)?
    (single choice)

  * Yes
  * No
  * Maybe
  # Tried to             <--- new answer

jn> This is here to correlate other responses with Git developers.
jn> In 2012 it was called "Does Git include code or documentation by you?
jn> (Are you a Git developer?)".  I think this way of stating it is better;
jn> if it is here to stay - the number of active and past developers is
jn> not very large.  On the other hand it can be used to detect if we
jn> have a bias due to the way survey is announced.

JN> This would also serve as a reminder that Git is an open-source
JN> project (and free software), and anyone can contribute to it.
JN> Should there be a similar question about doing review?


06. What's stopping you from contributing to Git?
    What was hardest / most difficult when contribution to Git?
    (free-text essay question)

JN> This was the question proposed by Duy Nguyen in "Working with
JN> public-inbox.org" thread (well, the first part of it):
JN>   https://public-inbox.org/git/CACsJy8BG63oaLbw0f7try3OpzdphLC7UGAaJ=vgikEB36Pagqg@mail.gmail.com/


jn> NOTE: earlier surveys have had two additional questions that were
jn> since removed (to make survey shorter, among others).  Those were:
jn>
jn>  - What is your preferred [non-programming] language?
jn>  - Which programming languages / technologies you are proficient with?
jn>
jn> Well, the latter was only about programming languages, originally.
JN> And it would be possibly added, of in later section ("Other tools").


#### Getting started with Git

jn> This is probably not the best name for this section of questions.
JN> Can anyone think of a better one?


07. Have you found Git easy to learn?
    (single choice)

  * Very easy
  * Easy
  * Reasonably easy
  * Hard
  * Very hard

08. Have you found Git easy to use?
    (single choice)

  * Very easy
  * Easy
  * Reasonably easy
  * Hard
  * Very hard

jn> Those two questions, considered alone, doesn't tell us much.  If one
jn> uses git, then usually one does not think it is too hard to use
jn> (unless forced to use git by external circumstances, like project
jn> he/she works on using git).  On the other hand those two questions
jn> together give us some measure of Git's learning curve, telling us
jn> if people consider git easy to use but hard to learn, or vice versa ;-)
jn>
jn> This question was present from the beginning of Git User's Survey,
jn> so it can be used to compare with historical surveys, and see
jn> Git evolution in motion (hopefully in good direction, that is getting
jn> easier to learn and use).


09. Which Git version(s) are you using?
   (multiple choice, with other)

 + pre 2.0
 + 2.0.x to 2.5.x
 + 2.6.x
 + 2.7.x
 + 2.8.x
 + 2.9.x or newer

 + 2.10.x-rcN version (release candidate)
 + minor (maintenance) release 1.x.y.z
 + 'master' branch of official git repository
 + 'next' branch of official git repository
 + version from msysGit / Git for Windows fork repository
 + alternate Git implementation (JGit and similar)

 + other, please specify

jn> I don't know if it is a good range.  One thing that might be good
jn> to know is people using outdated Git, perhaps because it is version
jn> bundled with GUI tool (e.g. using last msysGit instead of Git for
jn> Windows, that is 1.9.x at latest).
jn>
jn> If we want connection with last survey, from 2012, we would
jn> need to go back down to 1.7.x or earlier version...


10. On which operating system(s) do you use Git?
    (multiple choice, with other)

 + GNU/Linux
 + MS Windows
 + macOS
 + *BSD (FreeBSD, OpenBSD, NetBSD, etc.)
 + Android
 + iOS
 + other Unix
 + other, please specify

jn> This question was a part of previous surveys, but it was asked
jn> a bit later.  This year I skipped asking about Cygwin vs native
jn> Git for Windows.  Note that I am not sure if Android and iOS,
jn> added just now, should be present here.


11. Rate your own proficiency with Git
    (single choice, rating)

 1. novice
 2. casual, needs advice
 3. everyday use
 4. can offer advice
 5. know it very well

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

jn> This question tell us penetration of announcements of the survey;
jn> did we get to all users, or only to git gurus?  It is also useful
jn> for correlating with other responses, for example to get to know
jn> which Git features are used by novices, and which by gurus.
jn>
jn> Note that the answers are rather here to stay because of
jn> "backwards compatibility", that is to be able to easy compare
jn> with earlier surveys.


#### How do you use Git

12. I use Git for (check all that apply):
    (multiple choice, with other)


Note that those choices are neither orthogonal nor exclusive.  One
might want to check multiple answers even for a single repository.

jn> Answers to this question probe different direction.
jn> We might want to split this question... but on the other hand
jn> I think we'd rather reduce the number of questions in the survey.

 + work and work-related projects
 + unpaid projects
 
JN> This is one possible point of split, work vs unpaid.  Are there
JN> other possibilities in this dimension?

 + closed-source projects
 + OSS development, public domain, and published & unlicensed
 + private (unpublished), in house projects

jn> It was "proprietary projects" instead of "closed-source projects"
jn> in previous version(s) of Git User's Survey (and it does not
JN> belong in this dimension).  This is another possible point of
JN> splitting into a separate question.

 + code (programming) and its documentation
 + data, documents, static assets (without code)

JN> That is another dimension, another possible split into a separate
JN> question: what types of content is stored in git repositories.
JN> Are there any other types of data?

 + sharing data or synchronization
 + managing configuration files
 + backup
 + frontend / fat-client to other SCM (e.g. git-svn, git-p4)

jn> I'm not sure if the last answer should not be moved to
jn> question about other version control systems

 + other, please specify


13. How do/did you obtain Git (install and/or upgrade)?
    (multiple choice, with other)

jn> Perhaps this question should be moved to previous section.
JN> Or to a separate section, "Getting Git", or something like
JN> that.

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

 + binary package
 + source package or script (automatic compiling)
 + source tarball/archive (extract, make, make install)
 + pull from repository, and compiled
 # bundled with GUI or other kind of tool
 + preinstalled / sysadmin job

 + other - please specify (if none of the above apply)

jn> The "bundled" answer is new.  I guess that most people would
jn> not check if GUI brought it own Git (sometimes very outdated;
jn> SourceTree for Windows bundled git 1.9.7 (sic!)) and is using
jn> it instead of system- or user-installed Git.
jn>
jn> Note for example that Eclipse brings JGit, implementation
jn> of Git in Java, and would be covered by "bundled" answer...
JN>
JN> The question about Git version and operating system could be
JN> brought together with this question.


14. How often you upgrade Git?
    (multiple choice or single choice?)

 # use 'master' or 'next' version, and/or pre-release
 * as soon as new version is released
 * when there is new binary package / distribution package
 * when updating distribution / system
 * around every month, or more often
 * around every 6 months or more often
 # update from time to time, cannot say how often
 * I use what is installed on system

JN> This question was added (well, considered to be added) at the
JN> request / suggestion by Andrew Ardill
JN>   Message-ID: <CAH5451n0=kmr9SeOKSH5iiJr5Lnr2TapfZrTUR6Pm90xUEKFxQ@mail.gmail.com>


jn> NOTE: I think we can skip
jn>
jn>   What Git interfaces, implementations and frontends do you use?
jn>
jn> question.  What do you think?


15. What kind of Git tools do you use?
    (multiple choice, with other)

 + editor/IDE VC integration (e.g. EGit (for Eclipse), TextMate bundle, magit (for GNU Emacs))
 + filemanager / shell extension (e.g. git-cheetah, TortoiseGit, Git Extension)
 + filesystem interface (e.g. gitfs, figfs)
 + graphical history viewer/browser (e.g. gitk; might be a part of GUI tool)
 + graphical commit tool (e.g. git-gui; might be a part of GUI tool)
 + graphical diff and/or merge tool (e.g. Kompare, Meld; might be a part of GUI tool)
 + graphical blame or pickaxe tool (e.g. 'git gui blame'; might be a part of editor plugin)
 + tool to manage git repositories (e.g. Gitolite)
 + git-instaweb, or self-hosted web interface (e.g. gitweb, cgit)
 + self-hosted project hosting solution (e.g. GitLab, GitHub FI, GitPrep, Phabricator)
 + self-hosted code review or audit system (e.g. Gerrit, Differential)
 + patch or patch series management interface (e.g. StGit, Guilt, git-series)
 + command line tab-completion, or equivalent (e.g. git-completion.sh)
 + shell prompt, or widget, desklet, etc. (e.g. git-prompt / __git_ps1(), git-radar)
 + git aware pager, or syntax highlighter (e.g. tig, diff-highlight)

 # large files handling (e.g. git-LFS, git-annex)
 # handling subprojects or multiple repositories (e.g. git-stree, repo, git-slave)

 + credentials helper, or askpass wrapper (e.g. wincred, winstore, cache)
 + remote helper to store repository (e.g. FTP, Amazon S3, Dropbox)
 + remote helper to interact with foreign repositories (e.g. git-hg)

 + my own scripts (for daily use)
 + my own scripts (for special tasks)

 + other, please specify

jn> Does this list cover all kind of tools that one might be using,
jn> or is some category missing from the above list (slightly modified
jn> and extended compared to previous surveys)?

JN> Answers about large file support and subproject / dependency handling
JN> are new in this revision of the proposal.


16. List Git tools that you are using (comma separated, or one per line)
16. List git tools that you use (optional)
    (textarea)

jn> Open ended questions are often a pain to analyze, but I don't think
jn> this one would be a problem.  Instead of free-form text field we
jn> could provide a list of most common GUIs and other tools... but I am
jn> not sure what they are, and we are risking skewing results.  On the
jn> other hand free-form might mean people forgetting about tool they use,
jn> or used in the past; it is also a bit more work, to write and not
jn> only to select.


17. How often do you use Git command line (and other command line tools)?
    (single-choice, rating-like)

  1. never
  2. rarely
  3. often
  4. only (always)

jn> This is a new question, replacing somewhat "What Git interfaces,
jn> implementations and frontends do you use?".  I'm not quite sure if
jn> it is a question worth to have.  Though it would be good to verify
JN> the assumption that people have access to command-line tools.
JN> And perhaps correlate use of CLI with use of advanced features.


18. Which git hosting site(s) do you use for your project(s)?
    Please check only hosting sites where you publish/push to (with git)
    (multiple choice, with other)

jn> I think it should be limited to *main* hosting sites; there is
jn> always the "other, please specify" option

  + GitHub
  + Bitbucket
  + GitLab

  + SourceForge
  + Savannah or Gna!
  + CodePlex

  + Assembla
  + Beanstalk
  + CloudForge (formetly Codesion)
  + Codebase
  + Deveo
  + Unfuddle

JN> The above section is new... and would allow us to ask for announcement
JN> about Git User's Survey 2016 on those sites.

  + git hosting site for related projects (e.g. OLPC, freedesktop.org)
  + company internal / self-hosted

  + other, please specify

jn> Gitorious was acquired/changed into GitLab, Google Code is in archive
jn> mode, BerliOS is no longer.  CodePlex is new; many hosting sites that
jn> were present are missing, but could be added: Assembla, Beanstalk,
jn> CloudForge (formerly Codesion), Codebase, Deveo, Unfuddle, perhaps
jn> even Alioth (Debian), Fedora Hosted, Launchpad (Ubuntu)
jn>
jn> "Company internal" and "self-hosted" got concatenated into one answer.
jn>
jn> This question could be moved to the next section.


19. If you, your project or your company self-hosts Git repositories,
    what Git repository management tools do they use?
    (multiple choice, assuming mostly single selected, with other)

JN> This was a suggestion by David Bainbridge: "This is not directly
JN> about Git of course but seeing the extent to which these are used,
JN> and the proportion of users using them might be useful."

  + Gitolite
  + Gitosis (DEPRECATED)

  + Gerrit

  + Kallithea
  + Rhodecode
  + Phabricator

  + Bitbucket Server (Atlassian)
  + GitHub Enterprise
  + GitLab Community Edition (OSS)
  + GitLab Enterprise Edition
  + Deveo On-Premises

  + GitPrep
  + Girocco (repo.or.cz)

  + don't use self-hosted / on-premises

  + other, please specify

JN> This was somewhat present in previous version of survey, namely
JN> there is question about *types* of tools (with git repository
JN> management, git hosting tools and code review tools included),
JN> and there is free-form question asking to enumerate tools one uses.
JN>
JN> Though I guess people would forget to write about them, if not
JN> asked explicitly.


#### Git workflows, or
#### Interacting with other repositories

20. How do you fetch/get changes from upstream repositories
    and/or other developers?
    (multiple choice, with other)

 + git protocol        (e.g. git://git.example.com/repo.git)
 + ssh                 (e.g. ssh+git://git.example.com/repo.git,
                             git.example.com:/srv/scm/repo.git)
 + http(s              (e.g. http://git.example.com/repo.git)
 + rsync (DEPRECATED)  (e.g. rsync://git.example.com/repo.git)
 + filesystem          (e.g. /path/to/repo.git, file:///path/to/repo.git)
 + applying patches    (e.g. git-am from emails, or other source)
 + via git-bundle
 + foreign SCM (fat-client or remote helper, e.g. git-svn, git-p4, gitifyhg)

 + Other, please specify

jn> Nobody should be using rsync, as it got broken and nobody noticed,
jn> and then removed from Git.  Note that "applying patches" is new,
jn> because question got extended to cover getting changes from other
jn> developers (in maintainer role), not only from upstream repo.
jn> This question is about getting changes into local work repository.


21. How do you publish/propagate your changes?
    (multiple choice, with other)

 + push via SSH
 + push via HTTP / HTTPS
 + push via git protocol (NOT RECOMMENDED)
 + push (unknown)
 + pull request (+ any form of announcement / notification)
 + format-patch + email
 + format-patch + other (e.g. reviewboard, issue tracker or forum)
 + git bundle

 + git-svn (to Subversion repository)
 + git-p4 (to Perforce repository)
 + foreign SCM interface (other than mentioned above)

 + other - please specify


22. How do you integrate changes from others?
    (multiple choice, with other)

 + merge  (includes 'git pull')
 + rebase (includes 'git pull --rebase')
 + reapply (e.g. git-am from patches)
 + git-imerge (third-party tool)

 + git mergetool, or graphical merge tool directly
 + graphical rebase tool

 + other, please specify

jn> This is proposed new question about workflows.


23. What types of branches can be found in your repositories?
    (repositories you use or are contributing to)
    (multiple choice, with other)

 + there is only a single branch
 + development/graduation branches (master/stable, next/devel/unstable etc.)
 + per-release maintenance branches (or release branches)
 + proposed-updates integration testing and WIP publish branch

 + bugfix / hotfix branches (topic branches for bug fixes)
 + release branches (for preparing a new release)
 + other short-lived topic / feature branches

 ? orphan branches (with disconnected history, e.g. gh-pages, todo)

 + other types and uses, please describe


jn> This is new question.  It doesn't ask about use of git-flow, but
jn> is close.  I think all types of branches are covered, isn't it?


24. Which of the following signing features do you use?
    How do you sign your Git repositories?
    (multiple choice)

JN> This is a new question; it somewhat overlaps with the following
JN> question about Git features, but I think it would be nice to have
JN> it separate.

  + digital certificate of origin ("Signed-off-by:")
  + signed tags
  + signed commits
  + signed merges (merging signed tags)
  + signed pushes

JN> Should there be "other, please specify"?  Are there any other ways
JN> of signing repositories?  Would this question be useful?
JN>
JN> Could be dropped.


#### How you use Git

25. Which of the following Git features do you use?
    (multiple choice, with other)

 + end-of-line conversion (crlf or eol)
 + custom diff/merge driver
 + textconv
 + other gitattributes (e.g. clean/smudge filter)

 + word diff
 + merge strategy options (e.g. -Xrenormalize)

 + submodules (subprojects)
 + subtree merge (e.g. git-subtree, git-stree)

 + partial (sparse) checkout
 + shallow clone (e.g. "git clone --depth=<n>")

 + multiple worktrees (e.g. git-worktree)

 # searching history for commit message and metadata (e.g. "git log --grep")
 # searching changes in history, pickaxe search ("git log -S" and "git log -G")
 # finding errors in history with bisect (also "git bisect run <script>")

 + tracking code movement with git-blame ("git blame -M" etc.)
 # history of lines ("git log -L")

 + detaching HEAD (e.g. "git checkout --detach", "git checkout <tag>")
 + orphan branches, with disconnected history (gh-pages, todo, man, etc.)

 + alternates mechanism (sharing object database)
 + stash and autostash (also "git stash --keep-index")
 + commit message templates, and/or commit-related hooks
 + interactive commit / per-hunk comitting / partial commit / splitting commits
 + interactive rebase, fixup commits (small scale history editing)
 + git-filter-branch or equivalent, like BFG Repo Cleaner (large history rewriting)
 + committing with dirty tree (keeping some changes uncommitted)
 + reflog (including @{1}, @{yesterday}, @{-1} / -, 'git log -g')

 # client-side hooks (e.g. pre-commit)
 # server-side hooks (e.g. post-receive)

 + git-aware shell prompt
 + git aliases, shell aliases for git, or own git scripts

 + one-way interaction with other SCMs (from SCM to git)
 + two-way interaction with other SCMs (from SCM to git, from git to SCM)

 + object overlays (git replace or grafts)
 + object annotation (git notes)

 + Other, please specify

jn> The problem is come up not with exhaustive list of features: there are
jn> too many of them to list.  The problem is coming up with list of
jn> important and used enough often features (and those interesting to
jn> know about).
jn>
jn> So: what features should be included in this list?  What features
jn> should be removed from above list of answers?
jn>
jn> Should this question be split into parts?  Should we ask how often
jn> those features are used (matrix-form question)?

JN> New features are marked (here and in other places) with '#' as bullet
JN> point in place of '+' (or '*' in other places).  This looks like
JN> longest list of answers for a question...


26. Describe what features would you like to have in Git
    (free form, essay length / textarea)

jn> The Git User's Survey 2012 (last survey) have had also
jn> "17. Which of the following features would you like to see
jn> implemented in git?", with a list of answers.  But as Git development
jn> is not directed by surveys, I'm not sure if it is worth it.
jn>
jn> Such free-form question would be a pain to analyze well, but it
jn> could also be a source of a good inspiration.


#### Other version control systems

27. What other version control systems (SCM) do you use beside Git?
   (multiple choice, with other)

Explanation: "using" version control system here means using
it to actively contribute (propose changes or accept proposals),
and not only e.g. using it to download software.

jn> Perhaps we should split it into two questions, one about
jn> centralized version control systems, one about distributed
jn> ones; longer list of answers vs more questions.
jn>
jn> Clarification (narrowing of scope) is new.

 + SCCS
 + RCS

 + CVS
 + Subversion

 + Perforce
 + ClearCase
 + AccuRev SCM
 + StarTeam
 + Visual SourceSafe
 + Team Foundation Server
 + Visual Studio Team System / ALM
 + Rational Team Concert


 + Bazaar (bzr)
 + Mercurial (hg)
 + Monotone
 + Darcs
 + SVK
 + Fossil
 + Veracity

 + BitKeeper
 + Code Co-op
 + TeamWare
 + Plastic SCM
 + Veracity

 + other, please specify

jn> Is there any *prominent* and important version control system
jn> missing from this list?  Are there systems that are so rare that
jn> they should be removed from the list?

JN> If not for "other, please specify" it could be made into matrix
JN> form, and ask how often one uses other version control systems,
JN> for example
JN>   never used / used in past / rarely / often


28. How does Git compare to other SCM tools that you have used?
    (single choice, rating)

Git is ____ that other version control systems I have used.

 * better
 * equal (comparable)
 * it depends (in some matters better, in some matters worse)
 * worse
 * cannot compare (have not used anything beside Git)

JN> The answers "it depends" and "cannot compare" are new in this
JN> year's survey (well, "cannot compare" could have been answered
JN> as not putting any answer in previous surveys).


#### Other tools

JN> This section was added (well, considered to be added) thanks
JN> to request / suggestion in a comment by Eric Wong in
JN>   Message-ID: <20160820212937.GA20555@starla>
JN> Well, the suggestion was about federated systems only.

> Perhaps there can be a question about use and interest of other
> decentralized/federated systems which could be potential
> collaboration tools or transports for git.
> e.g. ipfs, gpg, tor, diaspora, *coin, tent, xmpp, matrix, ...
> 
> And another about how they use email: webmail, GUI client,
> console client, phone app, none at all.


29. How do you read and answer email (check all that apply)?
    (multiple choice, possibly with other)

 + GUI client (e.g. Outlook, Thunderbird, Evolution, KMail)
 + console client (e.g. pine, alpine, mutt)
 + webmail or web client (e.g. GMail, Hotmail; HyperKitty)
 + phone app (e.g. K-9 Mail, Airmail, CloudMagic)
 + I don't use email at all


30. Which of the decentralized/federated systems do you use
    or are interested in?

JN> Have I missed some interesting and Git-relevant federated system?

 + IPFS
 + PGP / GPG
 + Tor
 + diaspora*
 + Bitcoin, Litecoin, Etherium, etc.
 + tent.io
 + XMPP / Jabber
 + OMEMO
 + Matrix.org
 + pump.io
 + other, please specify


There are a few other questions that we might want to ask if
such section is to be added to the Git User's Survey 2016:


31. Which of IDEs and programmer's editors do you use [with Git]?
    (multiple choice, with other)

JN> Have I missed some popular IDE or programmers editor?

 + Visual Studio
 + Eclipse
 + NetBeans
 + Xcode
 + IntelliJ IDEA / PhpStorm / WebStorm
 + KDevelop
 + Anjuta

 + Sublime Text
 + TextMate
 + Emacs
 + Vim
 + Atom
 + Brackets
 + Geany

 + other IDE or editor, please specify


32. Which of the programming languages are you proficient with?
    (multiple choices, with other)

JN> Based on TIOBE index from August 2016, Language Trends on GitHub
JN> 2015, GitHut (languages in GitHub), Stack Overflow Developer
JN> Survey 2016, and my own preferences; in no particular order

 + C
 + C++
 + C#
 + Java
 + VisualBasic.NET 
 + Objective-C

 + Python
 + Perl
 + PHP
 + JavaScript
 + Ruby
 + shell scripe

 + CSS, LESS, SASS etc.
 + HTML, HTML5
 + TeX, LaTeX, ConTeXt
 + SQL

 + Go
 + Rust
 + Swift
 + Scala
 + Haskell

 + other, pleasespecify


#### What you think of Git?

33. Overall, how happy are you with Git?
    (single choice, rating)

 * unhappy
 * not so happy
 # neutral
 * happy
 * very happy
 * completely ecstatic

jn> I'm not sure if this question is at all useful.
jn>
jn> There is also problem, that the current wording is considered biased
jn> by some, but on the other hand changing wording of answers would make
jn> it impossible to compare it to answers from previous surveys...
jn> Though I have added 'neutral' as an answer.  Perhaps I should add
jn> most negative answer to make rating balanced?  For example ;-)
jn>
jn>   # hate Git with a passion of thousands suns


34. In your opinion, which areas in Git needs improvement?
    Please state your preference.
    (matrix)

   Columns: don't need / a little / some / much
 + user-interface (UI and UX)
 + core documentation
 # messages, error messages, advices
 + performance
 + more features
 + tools (e.g. GUI)
 + localization (translation) of messages
 # translated documentation (manpages)

jn> Are there any general areas that are missing from this list?
jn> What are they?  (Matrix form cannot have "other, please specify").
jn>
jn> Note that "translated documentation" and "messages..." are new.


35. How do you compare the current Git version with the version from one year ago?
    (single choice)

 * better
 * no changes
 * worse

 * cannot say
 * Git used for less than 1 year

jn> This question is mainly excuse for providing list of main changes
jn> from the year ago, to show off how Git continues improving.
jn> List of new features and other changes taken from RelNotes.

JN> I am considering dropping this question.  It is of questionable
JN> utility; it was more useful (as an announcement of new features)
JN> when there were annual surveys.

Description:
~~~~~~~~~~~~
The version from approximately one year ago is x.y.z from DD-MM-YYYY
(x.y.v is from DD-MM-YYYY).

Changes since x.y.z include:

[TO BE DONE]


#### Documentation. Getting help. ==

36. How useful have you found the following forms of Git documentation?
    (matrix)

  Columns: never used / not useful / somewhat / useful
 ------------------------------------------------------
 + help distributed with git (manpages, tutorials, guides, etc.)
 + "Pro Git" book
 + Git Wiki
 + Git Reference site
 + hosting site tutorials and help, etc.
 + 'git' section of StackOverflow Documentation
 + other on-line help
 + printed books (or ebooks)

Description:
~~~~~~~~~~~~
* help distributed with Git includes their online version:
  - https://git.github.io/htmldocs/git.html
  - https://git-scm.com/docs/
  - https://www.kernel.org/pub/software/scm/git/docs/
* Git Wiki was to be found at http://git.wiki.kernel.org
* Git Reference site can be found at http://gitref.org
* StackOverflow Documentation refers to http://stackoverflow.com/documentation/git
* "Pro Git" can be found at https://git-scm.com/book and https://progit.org
* hosting sites tutorials include
  - https://help.github.com/
  - https://www.atlassian.com/git/
  ? https://www.git-tower.com/learn/git/ebook
* help distributed with git include manpages, manual, tutorials, HOWTO,
  release notes, technical documentation, contrib/examples/

jn> Should we split those answers further, e.g. separating on-line
jn> tutorials and guides, from on-line tips etc.?
jn>
jn> This is also educational, showing where one can find documentation;
jn> note that StackOverflow Documentation in yet in Beta.


37. What [channel(s)] do you use to request/get help about Git [(if any)]?
   (multiple choice, with other)

 + git mailing list (git@vger.kernel.org)
 + "Git for Human Beings" Google Group
 + msysGit mailing list / Google Group
 + IRC (#git)
 + IRC (other git/SCM related, e.g. #github)
 + IRC (other than above)
 + request in blog post or on wiki
 + asking git expert/git guru/colleague/friend
 + project mailing list, or IRC, or forum
 + Twitter or other microblogging platform
 + instant messaging (IM) like XMPP/Jabber
 + StackOverflow or other StackExchange site
 + search specific site or whole web (e.g. with Google)

 + find and read book or ebook
 + watch an instructional video or course
 + attend a seminar, webinar or lecture about Git (interactively)

 + N/A (didn't request help about Git)

 + other (please specify)

jn> Are there any main channels of requesting help that I have missed in
jn> the above list of answers?  What are they, and why do you think they
jn> are important enought to warrant inclusion in above list?
jn>
jn> Should we ask the opposite: how one provides help (if one does)?


38. Which books about Git have you read and recommend, or plan to read?
    (multiple choice, with other)

jn> New question.  List of answers based partially on the "Books" section
jn> in https://git-scm.com/documentation/external-links , ordered by date
jn> of latest edition to within a year.
jn>
jn> Should "plan to read" be included in question, or not?

 + "Pragmatic Version Control Using Git", by Travis Swicegood (2008)
 + "Pragmatic Guide to Git", by Travis Swicegood (2010)
 ? "Version Control by Example", by Eric Sink (2011)
 + "Version Control with Git", by by Jon Loeliger and Matthew McCullough
   (1st ed. 2009, 2nd ed. 2012)
 + "Git: Version Control for Everyone", by Ravishankar Somasundaram
   (2013)
 + "Pro Git", by Scott Chacon and Ben Straub (1st ed. 2009, 2nd ed. 2014)
 + "Git Version Control Cookbook", by Aske Olsson and Rasmus Voss (2014)
 + "Git in Practice", by Mike McQuaid (2014)
 + "Git for Teams", by Emma Hogbin Westby (2015)
 + "Git Essentials", by Ferdinando Santacroce (2015)
 + "Mastering Git", by Jakub Narębski (2016)

jn> What *good* books should be added here?  I'd rather add only those books
jn> which have a paper version, and not be ebook-only (or be on a website
jn> only); that excludes many online tutorials and guides.

JN> Should "Version Control by Example" be included (it has a chapter on Git)?


#### About this survey. Open forum.

39. How did you hear about this Git User's Survey? ===
    (single choice, with other)

 * git mailing list
 * git-related mailing list (e.g. msysGit, Git for Human Beings)
 * mailing list or forum of some project
 * #git IRC channel topic
 * announcement on IRC channel
 * git homepage
 * git wiki
 * git hosting site (or blog related to such site)
 * software-related web site
 * news or social news site (e.g. Digg, Reddit)
 * blog (or blog planet)
 * other kind of web site
 * Twitter or other microblogging platform

 * other - please specify

jn> This list would of course be updated to reflect the list of (planned)
jn> announcement channels.  I also plan to use separate "channels"
jn> (separate shorter URLs) for different announcements.
jn>
jn> I'm not sure how useful would it be.

JN> I am considering dropping this question in favor of the next one.


40. How do you hear about git related news 
    (such as new releases and community events)?
    (multiple choice or single choice?, with other)

JN> This question was proposed by Andrew Ardill, with the proposal in
JN> Message-ID: <CAH5451nMeuZttRgM8LK3JcPhfOYHieyawV2pJzp0jdh2KAf60Q@mail.gmail.com>

  * I wasn't aware there was any news
  * I don't read any news, but I'm aware of it
  * through news aggregation sites (such as reddit or hacker news)
  * from a newsletter (such as Git Rev News)
  + through a watched blog (such as GitHub Blog)
  + announcement section in news site (such as LWN.net)
  + RelNotes file(s) in git sources
  * from a mailing list (such as the git developer or the git for windows list)
  * other, please specify

JN> Are there any other common channels that you (the people) watch for
JN> git news or software news?  Freshmeat / Freecode is defunct, and no
JN> replacement got popular enough...


41. Other comments and suggestions
    What other comments or suggestions do you have,
    that are not covered by the questions above?
    (essay length / textarea)

jn> This would be hard to analyze... but possibly useful.

-- 
Jakub Narębski



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-26 11:52   ` Jakub Narębski
       [not found]     ` <CAFO0PHfy_teFFMiuFdjKYohCgRZHNT+Cc8hXOjsPeRTi9gAHPQ@mail.gmail.com>
@ 2016-08-28  9:49     ` Eric Wong
  2016-08-28 11:22       ` Jakub Narębski
  1 sibling, 1 reply; 15+ messages in thread
From: Eric Wong @ 2016-08-28  9:49 UTC (permalink / raw)
  To: Jakub Narębski; +Cc: git, Doug Rathbone, David Bainbridge, Stefan Beller

Jakub Narębski <jnareb@gmail.com> wrote:
> W dniu 26.08.2016 o 08:15, Eric Wong pisze:
> 
> > Not directly-related to the survey questions, but can you ensure
> > it's accessible to folks without JavaScript/graphics, and
> > perhaps also ensure it is on a host that is Tor-friendly?
> 
> I plan on using Survs.com (where we have Premium account for free,
> thanks to Survs admins).  It has good online analysis tools, allows
> to download results in easy parseable format[1], and has support
> for multiple channels.
> 
> [1]: https://github.com/jnareb/GitSurvey-scripts
> 
> 
> It is possible to have a channel without JavaScript and without
> cookies (anonymous), at the cost of having to fill the survey
> in one go (without cookies and JavaScript you cannot go back
> to fill more questions, or change your mind about answers).
> The main page of survey would have a link to JavaScript-free
> version, and all announcements (by me) would include it.

Thanks.

> There would be no graphics that are not purely optional
> (decorative); probably there would be just a logo.
> 
> I'm not sure how Tor-friendly is this host.

I was able to get to Survs.com using Tor (maybe it was just luck
with a new exit).

> > Graphics setups often require non-Free firmware or drivers for
> > acceptable performance; and there are also visually-impaired
> > users who will need screen readers or Braille.
> 
> A question: would it be better to have the whole survey one one
> large page, or have it split into pages (with fever questions
> per page)?

I prefer single. One could get one page, take take time and let the
connection drop/fail, and send it over all in one go.  With multiple
pages, one would have to reconnect for every POST.

(fittingly, my connection failed writing this message a few
 days ago and I only got back around to it)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFC] Proposed questions for "Git User's Survey 2016"
  2016-08-28  9:49     ` Eric Wong
@ 2016-08-28 11:22       ` Jakub Narębski
  0 siblings, 0 replies; 15+ messages in thread
From: Jakub Narębski @ 2016-08-28 11:22 UTC (permalink / raw)
  To: Eric Wong; +Cc: git, Doug Rathbone, David Bainbridge, Stefan Beller

W dniu 28.08.2016 o 11:49, Eric Wong pisze:
> Jakub Narębski <jnareb@gmail.com> wrote:
>> W dniu 26.08.2016 o 08:15, Eric Wong pisze:
>>
>>> Not directly-related to the survey questions, but can you ensure
>>> it's accessible to folks without JavaScript/graphics, and
>>> perhaps also ensure it is on a host that is Tor-friendly?
[..]
>> A question: would it be better to have the whole survey one one
>> large page, or have it split into pages (with fever questions
>> per page)?
> 
> I prefer single. One could get one page, take take time and let the
> connection drop/fail, and send it over all in one go.  With multiple
> pages, one would have to reconnect for every POST.

All right, I can make Git User's Survey 2016 to be on one page
(at least the anonymous JavaScript-less channel).  It turns out
that there would be 40-42 questions in this year survey.


Though I don't know how resilent Survs.com is for submitting survey
results after connection drop/fail.

*Editing* survey (which requires to be logged in, which is not needed
for submitting survey), times out after inactivity.

-- 
Jakub Narębski


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [RFCv3] Proposed questions for "Git User's Survey 2016", take three
  2016-08-27 22:00 ` [RFCv2] Proposed questions for "Git User's Survey 2016", take two Jakub Narębski
@ 2016-09-05 21:27   ` Jakub Narębski
       [not found]     ` <CAFO0PHc48OmWNcRrh2Wu30L6Oarqyw+co+zNPpsPEWerCiqanw@mail.gmail.com>
  0 siblings, 1 reply; 15+ messages in thread
From: Jakub Narębski @ 2016-09-05 21:27 UTC (permalink / raw)
  To: git
  Cc: Doug Rathbone, David Bainbridge, Stefan Beller, Eric Wong,
	Andrew Ardill, W. David Jarvis

Hello,

As I wrote previously, I am thinking about returning to doing the
Git User's Survey this year.

  Message-ID: <577E6F32.7020007@gmail.com>

  https://marc.info/?l=git&m=146790381602547&w=2
  https://public-inbox.org/git/577E6F32.7020007%40gmail.com/

In this email I'd like to propose the revised list of questions (and
answers) for Git User's Survey 2016, following comments to the previous
revisions, starting with

  Message-ID: <91a2ffbe-a73b-fbb9-96da-9aea4d439e5a@gmail.com>

  https://public-inbox.org/git/91a2ffbe-a73b-fbb9-96da-9aea4d439e5a@gmail.com/


Below is my third, and probably final proposal.  You can see the survey
in work at (there might be some slight differences from what's below)

  https://survs.com/survey/kn2bpu4p9d

NOTE: This is a *test channel*, all responses will be deleted.


The survey is currently planned to be open (after a bit of delay)
from  10 September 2016  to  20 October 2016.

I'd like to ask also about announcing the survey as widely as possible.
Please reply if you think of some channel, or of you could announce
it yourself.  Thanks in advance.


If you want to do this survey "in house", you can ask for a separate
channel (a separate survey URL).  After the survey ends, I'll send 
anonymous responses from that channel in Excel and CSV formats.

There also will be anonymous, JavaScript- and cookie-less channel;
at the cost that you cannot go back and change or add to your response.
----------------------------------------------------------------------------
There are 50 questions in this survey.


#### About you

01. What country do you live in? (Country of residence, in English)
    (free-form single line)

02. How old are you (in years)?
    (single number)

03. What is your gender?
    (single choice)

  *  Man
  *  Woman
  *  Other
  *  Prefer to not disclose

04. How would you describe your occupation / role as Git user?
    (multiple choice with other, limit to 3 selections)

  + Developer
  + Programmer
  + Engineer
  + Analyst
  + Manager / Leader
  + Maintainer / Reviewer / Sub-maintainer
  + DevOps
  + Administrator
  + Designer
  + Artist / Writer
  + Tester / QA
  + Expert
  + Student
  + Researcher
  + Teacher
  + Other, please specify

05. Have you ever contributed to Git project (code, documentation, i18n, etc.)?
    (single choice)

  * Yes
  * No
  * Maybe, don't remember
  * Plan to, soon

06. Have you ever reviewed contribution to Git project?
    (single choice)

  * Yes
  * No
  * Maybe, don't remember
  * Plan to, soon
  * Only spelling corrections, or correctness of translation

07. What's stopping you from contributing to Git?
    What was hardest / most difficult when contribution to Git?
    (free-text essay question)


#### Getting started with Git

08. Have you found Git easy to learn?
    (single choice)

  * Very easy
  * Easy
  * Reasonably easy (average)
  * Hard
  * Very hard

09. Have you found Git easy to use?
    (single choice)

  * Very easy
  * Easy
  * Reasonably easy (average)
  * Hard
  * Very hard

10. Rate your own proficiency with Git
    (single choice, rating)

  1. novice
  2. casual, needs advice
  3. everyday use
  4. can offer advice
  5. know it very well

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



11. Which Git version(s) are you using?
   (multiple choice, with other)

 + I don't remember and cannot check the version
 + pre 2.0
 + 2.0.x to 2.4.x
 + 2.5.x
 + 2.6.x
 + 2.7.x
 + 2.8.x
 + 2.9.x
 + 2.10.x or newer
 + 2.10.x-rcN version (release candidate)
 + minor (maintenance) release 1.x.y.z
 + 'master' branch of official git repository
 + 'next' branch of official git repository
 + version from msysGit / Git for Windows fork repository
 + alternate Git implementation (JGit and similar)

 + other, please specify


#### Getting and updating Git

12. On which operating system(s) do you use Git?
    (multiple choice, with other)

 + GNU/Linux
 + MS Windows
 + macOS
 + *BSD (FreeBSD, OpenBSD, NetBSD, etc.)
 + Android
 + iOS
 + other Unix

 + other operating system, please specify

13. How do/did you obtain Git (install and/or upgrade)?
    (multiple choices, with other)

  + binary package
  + source package or script (automatic compiling)
  + source tarball/archive (extract, make, make install)
  + pull from repository, and compiled
  + bundled with GUI or other tool
  + preinstalled / sysadmin job / I don't know

  + other, please specify (if none of the above apply)

14. How often do you upgrade Git?
    (multiple choice)

  + use 'master' or 'next' version, and/or pre-release
  + as soon as new version is released
  + when there is new binary package / distribution package
  + when updating distribution / system
  + around every month, or more often
  + around every 6 months or more often
  + update from time to time, cannot say how often
  + I use what is installed on system


#### How do you use Git

15. What kind of projects etc. do you use Git for?
    (multiple choice, with other)

  + work and work-related projects
  + unpaid projects

  + closed-source projects
  + open-source development, public domain, and published & unlicensed
  + private (unpublished), in house projects

  + other (please specify)

16. I use Git for (check all that apply):
    (multiple choice, with other)

  + code (programming) and its documentation
  + data, documents, static assets (without code)

  + sharing data or synchronization
  + managing configuration files
  + backup
  + frontend / fat-client to other SCM (e.g. git-svn, git-p4)

  + other (please specify)

17. What kind of Git tools do you use?
    (multiple choice, with other)

  + editor/IDE VC integration (e.g. EGit (for Eclipse), TextMate bundle, magit (for GNU Emacs))
  + build tool integration (e.g. git plugin for Maven, gitbuilder, Parabuild)
  + continuous integration (CI) (e.g. cidaemon)
  + commit notification tools (e.g. irker, git-notify)
  + filemanager / shell extension (e.g. git-cheetah, TortoiseGit, Git Extension)
  + filesystem interface (e.g. gitfs, figfs)
  + graphical history viewer/browser (e.g. gitk; might be a part of GUI tool)
  + graphical commit tool (e.g. git-gui; might be a part of GUI tool)
  + graphical diff and/or merge tool (e.g. Kompare, Meld; might be a part of GUI tool)
  + graphical blame or pickaxe tool (e.g. 'git gui blame'; might be a part of editor plugin)
  + tool to manage git repositories (e.g. Gitolite)
  + git-instaweb, or self-hosted web interface (e.g. gitweb, cgit)
  + self-hosted project hosting solution / software forge (e.g. GitLab, GitHub Enterprise, Phabricator)
  + self-hosted code review or audit system (e.g. Gerrit, Differential)
  + patch or patch series management interface (e.g. StGit, Guilt, git-series)
  + tracking some files out-of-band, large files handling (e.g. git-LFS, git-annex, git-media)
  + storing metadata (e.g. metastore, gitperms, git-cache-meta)
  + managing composite repositories (e.g. git-stree, gitslave, repo)
  + command line tab-completion, or equivalent (e.g. git-completion.sh)
  + shell prompt, or widget, desklet, etc. (e.g. git-prompt / __git_ps1(), git-radar)
  + git aware pager, or syntax highlighter (e.g. tig, diff-highlight)
  + credentials helper, or askpass wrapper (e.g. wincred, winstore, cache)
  + remote helper to store repository (e.g. FTP, Amazon S3, Dropbox)
  + remote helper to interact with foreign repositories (e.g. git-hg)

  + my own scripts (for daily use)
  + my own scripts (for special tasks)

  + other kind, please specify

18. List git tools that you are using, one per line, or as comma separated list
    (textarea)

19. How often do you use Git command line (and other command line tools)?
    (single-choice, rating-like)

  * never
  * rarely (less often than other tools)
  * average, or about average
  * cannot say how often
  * often (more often than other tools)
  * only (always)


#### Git hosting sites and software forges

18. Which git hosting site(s) do you use for your project(s)?
    Please check only hosting sites where you publish/push to (with git)
    (multiple choice, with other)

  + GitHub
  + Bitbucket
  + GitLab

  + SourceForge
  + Savannah or Gna!
  + CodePlex

  + Assembla
  + Beanstalk
  + CloudForge (formetly Codesion)
  + Codebase
  + Deveo
  + Unfuddle

  + git hosting site for related projects (e.g. OLPC, freedesktop.org)
  + company internal / self-hosted

  + other site, please specify

21. If you, your project or your company self-hosts Git repositories,
    what Git repository management tools do they use?
    (multiple choice, assuming mostly single selected, with other)

  + git-shell
  + Gitolite
  + Gitosis (DEPRECATED)

  + Gerrit

  + Kallithea
  + Rhodecode
  + Phabricator

  + Bitbucket Server (Atlassian)
  + GitHub Enterprise
  + GitLab Community Edition (OSS)
  + GitLab Enterprise Edition
  + Deveo On-Premises

  + GitPrep
  + Girocco (repo.or.cz)

  + don't use self-hosted / on-premises
  + other, please specify

22. Do you use paid git hosting, and if so, why?
    (multiple choice, with other)

  * N/A (don't use paid git hosting)
  * private or team-limited repositories
  * increased limits (repository size, number of repositories)
  * paid support / help
  * extra features compared to free plan / free hosting
  * other, please specify


#### Interacting with other repositories, git workflows

23. How do you fetch/get changes from upstream repositories
    and/or other developers?
    (multiple choice, with other)

  + git protocol        (e.g. git://git.example.com/repo.git)
  + ssh                 (e.g. ssh+git://git.example.com/repo.git,
                              git.example.com:/srv/scm/repo.git)
  + http(s)             (e.g. http://git.example.com/repo.git)
  + rsync (DEPRECATED)  (e.g. rsync://git.example.com/repo.git)
  + filesystem          (e.g. /path/to/repo.git, file:///path/to/repo.git)
  + applying patches    (e.g. git-am from emails, or other source)
  + via git-bundle
  + foreign SCM (fat-client or remote helper, e.g. git-svn, git-p4, gitifyhg)

  + Other, please specify

24. How do you publish/propagate your changes?
    (multiple choice, with other)

  + push via SSH
  + push via HTTP / HTTPS
  + push via git protocol (not available y default, NOT RECOMMENDED)
  + push (unknown transport)
  + pull request (+ any form of announcement / notification)
  + format-patch + email
  + format-patch + other (e.g. reviewboard, issue tracker or forum)
  + git bundle

  + git-svn (to Subversion repository)
  + git-p4 (to Perforce repository)
  + foreign SCM interface, or remote helper (other than mentioned above)

  + other - please specify

25. What git workflow(s) is used by projects in which development you participate?
    (multiple choice, with other)

  + single developer, only private repository (no interaction)

  + centralized workflow (push to common repository)
  + branched centralized (push to different branches in common repository)
  + peer-to-peer workflow (all repositories roughly equal)
  + integration-manager workflow (maintainer pulls/applies patches to "blessed" repository))
  + dictator and lieutenants workflow (hierarchical workflow)
  + using collaborative code review tool, e.g. Gerrit

  + other workflow, please explain
 
References:
~~~~~~~~~~~
 [1] https://git-scm.com/book/en/Distributed-Git-Distributed-Workflows
 [2] https://git-scm.com/about/distributed
 [3] https://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html
 [4] https://gerrit-documentation.storage.googleapis.com/Documentation/2.12.3/intro-quick.html


26. What types of branches can be found in your repositories?
    (repositories you use or are contributing to)
    (multiple choice, with other)

  + there is only a single branch
  + development/graduation branches (master/stable, next/devel/unstable etc.)
  + per-release maintenance branches (or release branches)
  + proposed-updates integration testing and WIP publish branch

  + bugfix / hotfix branches (topic branches for bug fixes)
  + release branches (for preparing a new release)
  + other short-lived topic / feature branches

  + orphan branches (with disconnected history, e.g. gh-pages, todo)

  + other types and uses, please describe


27. How do you integrate changes from others?
    (multiple choice, with other)

  + merge  (includes 'git pull')
  + rebase (includes 'git pull --rebase')
  + reapply (e.g. git-am from patches)
  + git-imerge (third-party tool)

  + git mergetool, or graphical merge tool directly
  + graphical rebase tool
  + custom merge driver (e.g. to merge GNU ChangeLogs)

  + other, please specify


28. How do you sign your Git repositories?
    (multiple choice, with other)

  + digital certificate of origin ("Signed-off-by:")

  + signed tags
  + signed commits
  + signed merges (merging signed tags)
  + signed pushes

  + other way, please specify


#### How you use Git

29. Which of the following Git features do you use?
    (multiple choice, with other)

  + end-of-line conversion (crlf or eol)
  + custom diff/merge driver
  + textconv
  + other gitattributes (e.g. clean/smudge filter)

  + word diff
  + merge strategy options (e.g. -Xrenormalize)

  + submodules (subprojects)
  + subtrees / subtree merge (e.g. git-subtree, git-stree)

  + partial (sparse) checkout
  + shallow clone (e.g. "git clone --depth=<n>")

  + multiple worktrees (e.g. git-worktree)

  + searching history for commit message and metadata (e.g. "git log --grep")
  + searching changes in history, pickaxe search ("git log -S" and "git log -G")
  + finding bugs in history with bisect (also "git bisect run <script>")

  + tracking code movement with git-blame ("git blame -M", "git gui blame", etc.)
  + history of lines ("git log -L")

  + detaching HEAD (e.g. "git checkout --detach", "git checkout <tag>")
  + orphan branches, with disconnected history (gh-pages, todo, man, etc.)
  + merging independent histories, joining different projects together
    (outside subtree merge)

  + alternates mechanism (sharing object database)
  + stash and autostash (also "git stash --keep-index")
  + commit message templates, and/or commit-related hooks
  + interactive commit / per-hunk comitting / partial commit / splitting commits
  + interactive rebase, fixup commits (small scale history editing)
  + git-filter-branch or equivalent, like BFG Repo Cleaner (large history rewriting)
  + committing with dirty tree (keeping some changes uncommitted)
  + reflog (including @{1}, @{yesterday}, @{-1} / -, 'git log -g')

  + client-side hooks (e.g. pre-commit)
  + server-side hooks (e.g. post-receive)

  + git-aware shell prompt
  + git aliases, shell aliases for git, or own git scripts

  + one-way interaction with other SCMs (from SCM to git)
  + two-way interaction with other SCMs (from SCM to git, from git to SCM)

  + object overlays (git replace or grafts)
  + object annotation (git notes)

  + other, please specify


30. Describe what features would you like to have in Git
    (free form, essay length / textarea)

31. What tool do you use to create new commits?
    (matrix)

 Columns: never / rarely / often / always
 ----------------------------------------
  - command line				
  - graphical commit tool (GUI)				
  - IDE/editor integration				
  - filemanager extension				
  - web interface				
  - other kind of tool				

32. What do you use submodules (or their equivalent, like subtree) for?
    (multiple choice, with other)

  + I don't use submodules or subtrees
  + planning to use submodules
  + for dependency management (including dependencies)
  + to import repositories maintained by others (in subdirectory)
  + for your own (or your organization's) code shared between different projects
  + to separate large and/or many files for performance reasons
  + to separate data which you don't want (or aren't allowed) to disclose
  + to separate code whose copyright we do not own, or with different licensing
  + to manage access to different parts of repository

  + other purpose, please specify


#### Other version control systems

33. What other centralized, local or per-file version control systems (SCM)
    do you use beside Git?
   (multiple choice, with other)

  + I don't use any centralized or local version control system

  + PVCS
  + SCCS
  + RCS

  + CVS
  + Subversion

  + Perforce
  + ClearCase
  + AccuRev SCM
  + StarTeam
  + Visual SourceSafe
  + Vault
  + Team Foundation Server
  + Visual Studio Team System / ALM
  + Rational Team Concert

  + other centralized SCM, please specify


34. What other distributed version control systems
    do you use or used beside Git?
   (multiple choice, with other)

  + I don't use any version control system beside Git

  + Bazaar (bzr)
  + Mercurial (hg)
  + Monotone
  + Darcs
  + SVK
  + Fossil
  + Veracity

  + BitKeeper
  + Code Co-op
  + TeamWare
  + Plastic SCM
  + Veracity

  + other, please specify


35. How does Git compare to other SCM tools that you have used?
    (single choice, rating)

Git is ____ that other version control systems I have used.

 * better
 * equal (comparable)
 * it depends (in some matters better, in some matters worse)
 * worse
 * cannot compare (have not used anything beside Git)


#### What you think of Git?

36. Overall, how happy are you with Git?
    (single choice, rating)

  # hate it
  * unhappy
  * not so happy
  # neutral
  * happy
  * very happy
  * completely ecstatic

37. In your opinion, which areas in Git needs improvement?
    Please state your preference.
    (matrix)

   Columns: don't care / don't need / a little / some / much
   ---------------------------------------------------------
 + user-interface (UI and UX)
 + core documentation
 # messages, error messages, advices
 + performance
 * portability
 + more features
 + tools (e.g. GUI)
 + localization (translation) of messages
 # translated documentation (manpages)
 * community (mailing list)
 * community (IRC)	

38. What do you like most about Git? (optional)
   (free-text, essay length, textarea)
 
39. What do you hate about Git? (optional)
   (free-text, essay length, textarea)


#### Other tools

40. How do you read and answer email (check all that apply)?
    (multiple choice)

  + GUI client (e.g. Outlook, Thunderbird, Evolution, KMail)
  + console client (e.g. pine, alpine, mutt)
  + webmail or web client (e.g. GMail, Hotmail; HyperKitty)
  + phone app (e.g. K-9 Mail, Airmail, CloudMagic)
  + I don't use email at all

41. Which of the decentralized/federated systems do you use
    or are interested in?
   (multiple choice, with other)

  + IPFS
  + PGP / GPG
  + Tor
  + diaspora*
  + Bitcoin, Litecoin, Etherium, etc.
  + tent.io
  + XMPP / Jabber
  + OMEMO
  + Matrix.org
  + pump.io
  + other, please specify

42. Which of IDEs and programmer's editors do you use [with Git]?
    (multiple choice, with other)

  + Visual Studio
  + Eclipse
  + NetBeans
  + Xcode
  + IntelliJ IDEA / PhpStorm / WebStorm
  + KDevelop or Qt Designer
  + Anjuta
  + Android Studio

  + Sublime Text
  + TextMate
  + Emacs
  + Vim
  + Atom
  + Brackets
  + Geany
  + Notepad++

  + other IDE or editor, please specify


43. Which of the programming languages are you proficient with?
    (multiple choices, with other)

  + C
  + C++
  + C#
  + Java
  + VisualBasic.NET 
  + Objective-C

  + Python
  + Perl
  + PHP
  + JavaScript
  + Ruby
  + shell script

  + CSS, LESS, SASS etc.
  + HTML, HTML5
  + TeX, LaTeX, ConTeXt
  + SQL

  + Go
  + Rust
  + Swift
  + Scala
  + Haskell
  + OCaml

  + other, please specify


#### Documentation. Getting help.

44. How useful have you found the following forms of Git documentation?
    (matrix)

  Columns: never used / not useful / somewhat / useful
 ------------------------------------------------------
 + help distributed with git (manpages, tutorials, guides, etc.)
 + "Pro Git" book
 + Git Wiki
 + Git Reference site
 + hosting site tutorials and help, etc.
 + 'git' section of StackOverflow Documentation
 + other on-line help
 + printed books (or ebooks)

Description:
~~~~~~~~~~~~
* help distributed with Git includes their online version:
  - https://git.github.io/htmldocs/git.html
  - https://git-scm.com/docs/
  - https://www.kernel.org/pub/software/scm/git/docs/
* Git Wiki was to be found at http://git.wiki.kernel.org
* Git Reference site can be found at http://gitref.org
* StackOverflow Documentation refers to http://stackoverflow.com/documentation/git
* "Pro Git" can be found at https://git-scm.com/book and https://progit.org
* hosting sites tutorials include
  - https://help.github.com/
  - https://www.atlassian.com/git/
  - https://www.git-tower.com/learn/git/ebook
* help distributed with git include manpages, manual, tutorials, HOWTO,
  release notes, technical documentation, contrib/examples/


45. How useful have you found the following kinds of Git documentation?
    (matrix)

  Columns: never used / not useful / somewhat / useful
  ----------------------------------------------------
 + in-command (command messages)
 + command manpages
 + concept manpages (e.g. gitcli, gitworkflows)
 + tutorials
 + technical documentation
 + contrib/examples
 + "The Git User's Manual"				

 + "Pro Git"				
 + other printed books (or ebooks)


46. What [channel(s)] do you use to request/get help about Git [(if any)]?
   (multiple choice, with other)

  + git mailing list (git@vger.kernel.org)
  + "Git for Human Beings" Google Group
  + Git for Windows mailing list / Google Group
  + IRC (#git)
  + IRC (other git/SCM related, e.g. #github)
  + IRC (other than above)
  + request in blog post or on wiki
  + asking git expert/git guru/colleague/friend
  + project mailing list, or IRC, or forum
  + Twitter or other microblogging platform
  + instant messaging (IM) like XMPP/Jabber
  + StackOverflow or other StackExchange site
  + search specific site or whole web (e.g. with Google)

  + find and read book or ebook
  + watch an instructional video or course
  + attend a seminar, webinar or lecture about Git (interactively)

  + N/A (didn't request help about Git)

  + other (please specify)


47. Which books about Git have you read and recommend, or plan to read?
    (multiple choice, with other)

 + "Pragmatic Version Control Using Git", by Travis Swicegood (2008)
 + "Pragmatic Guide to Git", by Travis Swicegood (2010)
 + "Version Control by Example", by Eric Sink (2011)
 + "Version Control with Git", by by Jon Loeliger and Matthew McCullough
   (1st ed. 2009, 2nd ed. 2012)
 + "Git: Version Control for Everyone", by Ravishankar Somasundaram
   (2013)
 + "Pro Git", by Scott Chacon and Ben Straub (1st ed. 2009, 2nd ed. 2014)
 + "Git Version Control Cookbook", by Aske Olsson and Rasmus Voss (2014)
 + "Git in Practice", by Mike McQuaid (2014)
 + "Git for Teams", by Emma Hogbin Westby (2015)
 + "Git Essentials", by Ferdinando Santacroce (2015)
 + "Mastering Git", by Jakub Narębski (2016)



#### About this survey. Git news. Open forum.

48. How did you hear about this Git User's Survey? ===
    (single choice, with other)

 * git mailing list
 * git-related mailing list (e.g. msysGit, Git for Human Beings)
 * mailing list or forum of some project
 * #git IRC channel topic
 * announcement on IRC channel
 * git homepage
 * git wiki
 * git hosting site (or blog related to such site)
 * software-related web site
 * news or social news site (e.g. LWN.net, Digg, Reddit)
 * blog (or blog planet)
 * other kind of web site
 * Twitter or other microblogging platform

 * other - please specify

49. How do you hear about git related news 
    (such as new releases and community events)?
    (multiple choice, with other)

  + I wasn't aware there was any news
  + I don't read any news, but I'm aware of it
  + through news aggregation sites (such as reddit or hacker news)
  + from a newsletter (such as Git Rev News)
  + through a watched blog (such as GitHub Blog)
  + announcement section in news site (such as LWN.net)
  + RelNotes file(s) in git sources
  * from a mailing list (such as the git developer or the git for windows list)
  * other, please specify

50. What other comments or suggestions do you have,
    that are not covered by the questions above?
    (free-form / essay length / textarea)

-- 
Jakub Narębski





^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [RFCv3] Proposed questions for "Git User's Survey 2016", take three
       [not found]       ` <CAFO0PHdGppfgSSYW4YB-0LEsuohyzSCkrk48fovppNfDYZx78w@mail.gmail.com>
@ 2016-09-09 20:20         ` Jakub Narębski
  0 siblings, 0 replies; 15+ messages in thread
From: Jakub Narębski @ 2016-09-09 20:20 UTC (permalink / raw)
  To: David Bainbridge; +Cc: git

Hello David,

On 7 September 2016 at 20:49, David Bainbridge
<david.bainbridge@gmail.com> wrote:
> Hi Jakub,
>
> I guess we could keep polishing this forever!
>
> Anyway, a couple of last comments from me:
> 1. Could you use the new Git logo instead of the +++/---- ? It would show
> some clear relationship with the Git community. The new logo has been in use
> for a few years now so I guess many people will recognise this.

Good idea. Done.

Though I say I like old logo one better...

> 2. If survs have dropdowns for countries and ages (integers) it might be
> worth using those instead of free text fields. Countries in particular
> should have a drop-down if available. It could probably avoid some
> post-survey correction.

Unfortunately Survs.com do not offer pre-made dropdowns for countries.
It offers a way to provide answers for a question by copy'n'paste of a plain
text file, for example with list of countries.

Coming up with correct list of countries is not easy, as I wrote:

JN> Survs.com do not offer list of countries as a pre-defined drop-down
JN> list (select, with search), and it looks like it is not as easy as
JN> I thought (though I could push responsibility to Locale::Country ;-):
JN>
JN>   https://en.wikipedia.org/wiki/List_of_sovereign_states
JN>
JN> This question originally read "What country are you from?"
JN> which might be thought as country of birth... which may not
JN> exist any longer.

Though perhaps I make it harder that it really is:
$ perl -MLocale::Country -e 'print join "\n", all_country_names();'

> 3. The comment: 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."
> Not sure that this adds anything useful to the survey and could be removed,
> or at least needs correcting to mention the correct questions.

Fixed question numbers, removed unnecessary and not useful note about
"weighted average".

> OK, that's it from me!

Thanks!

Regards,
-- 
Jakub Narębski

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-09-09 20:21 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-20 18:56 [RFC] Proposed questions for "Git User's Survey 2016" Jakub Narębski
2016-08-20 21:29 ` Eric Wong
2016-08-25 10:26   ` Jakub Narębski
2016-08-21 23:59 ` Andrew Ardill
2016-08-25 14:53   ` Jakub Narębski
2016-08-26  6:58     ` Andrew Ardill
2016-08-26 11:42       ` Jakub Narębski
2016-08-26  6:15 ` Eric Wong
2016-08-26 11:52   ` Jakub Narębski
     [not found]     ` <CAFO0PHfy_teFFMiuFdjKYohCgRZHNT+Cc8hXOjsPeRTi9gAHPQ@mail.gmail.com>
2016-08-26 23:46       ` Jakub Narębski
2016-08-28  9:49     ` Eric Wong
2016-08-28 11:22       ` Jakub Narębski
2016-08-27 22:00 ` [RFCv2] Proposed questions for "Git User's Survey 2016", take two Jakub Narębski
2016-09-05 21:27   ` [RFCv3] Proposed questions for "Git User's Survey 2016", take three Jakub Narębski
     [not found]     ` <CAFO0PHc48OmWNcRrh2Wu30L6Oarqyw+co+zNPpsPEWerCiqanw@mail.gmail.com>
     [not found]       ` <CAFO0PHdGppfgSSYW4YB-0LEsuohyzSCkrk48fovppNfDYZx78w@mail.gmail.com>
2016-09-09 20:20         ` Jakub Narębski

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).