Subject: Re: [RFC] Questions for "Git User's Survey 2011"

From: Phil Hord <[email-masked]>
Date: Mon, 25 Jul 2011 17:58:32 -0400

On 07/25/2011 04:33 PM, Jakub Narebski wrote:
> NOTES:
> ^^^^^^
> How to detect if it is msysGit or Cygwin from within?  Perhaps we
> should have just "MS Windows"...

I think it's useful to know which build they're using, cygwin or msys. 
Hopefully it's not too confusing for them and they can answer correctly.

>
>
> === 11. What Git interfaces, implementations and frontends do you use? ===
> (multiple choice, with other)
>
>  + JGit (Java implementation), e.g. via Eclipse plugin
>  + NGit or Git# (C# implementation)
>  + Dulwich (pure-Python implementation)
>  + Git::PurePerl (Perl implementation)
>  + git.js (JavaScript)
>  + libgit2 bindings
>
>  + git (core) commandline
>  + Cogito (DEPRECATED)
>  + Easy Git
>  + Pyrite
>  + I don't know, I only use (graphical) tools
>
>  + pg aka Patchy Git (DEPRECATED)
>  + StGIT
>  + Guilt
>  + TopGit
>
>  + Zit
>
>  + other (please specify)

You can probably drop pg and Cogito now, yes?

Looking at the 2010 results, I would add these GUIs to the main list:
git-gui (core)
gitk (core)
gitX
gitg
git-cola
TortoiseGit
SmartGit
Git Extensions
Giggle

Is there room for Gerrit here, or maybe in one of the other questions?
Also, cgit and other web interfaces, I suppose.

> === 16. Which of the following Git features do you use? ===
> (multiple choice, with other)
>
>  + localization of command-line messages (i18n)
>  + git bundle (off-line transport)
>
>  + eol conversion (crlf or eol)
>  + gitattributes (any)
>  + custom diff/merge driver
>  + word diff
>  + merge strategy options (e.g. -Xrenormalize)
>  + textconv
>
>  + submodules (subprojects)
>  + subtree merge (optionally git-subtree)
>
>  + partial (sparse) checkout, or assume-unchanged bit
>
>  + separate worktree / core.worktree
>  + multiple worktrees (e.g. git-new-worktree)
>  + gitdir mechanism (.git file pointing to repository)
>
>  + alternates mechanism (sharing object database)
>  + stash (optionally "git stash --keep-index")
>  + shallow clone (e.g. "git clone --depth=<n>")
>  + detaching HEAD (e.g. "git checkout --detach")
>  + commit message templates
>  + interactive commit / per-hunk comitting / partial commit
>  + interactive rebase (small scale history editing)
>  + git-filter-branch or equivalent (large history rewriting)
>  + bisect (optionally "git bisect run <script>")
>  + tracking code movement with git-blame ("git blame -M" etc.)
>  + committing with dirty tree (keeping some changes uncommitted)
>
>  + non-default hooks (from contrib/hooks/ or other)
>  + shell completion of commands
>  + 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)
>
>  + git-cvsserver
>  + git notes
>
>
>  + Other, please specify
>
> NOTES:
> ^^^^^^
> The problem is come up not with exhaustive list of features: there are
> too many of them to list.  The problem is coming up with list of
> important and used enough often features.
>
> So: what features should be included in this list?  What features
> should be removed from above list of answers?

bridges (git-svn, hg-git, git-p4, etc.)
IDE integration (Eclipse, Netbeans, etc.)

Phil