git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Dmitry Potapov <dpotapov@gmail.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: Considering teaching plumbing to users harmful
Date: Thu, 17 Jul 2008 01:48:49 +0400	[thread overview]
Message-ID: <20080716214849.GF2925@dpotapov.dyndns.org> (raw)
In-Reply-To: <alpine.DEB.1.00.0807161804400.8950@racer>

On Wed, Jul 16, 2008 at 06:21:02PM +0100, Johannes Schindelin wrote:
> 
> I had the pleasure of introducing Git to a few users in the last months 
> and in my opinion, restricting myself to teaching them these commands 
> first helped tremendously:
> 
> - clone, pull, status, add, commit, push, log

Yes, it is a good list, and I think it is very important at the
beginning to limit the number commands to 7-8, otherwise many users
may be confused. And, of course, it is better to stay away from all
command-line options at first...

> 
> All of these were presented without options, to keep things simple.
> 
> In particular, I refrained from giving them the "-a" option to commit.  
> That seemed to help incredibly with their embracing the index as a natural 
> concept (which it is).

Most things that we call as "natural" is those that we got used. Once,
you got used to it, it seems very natural, and the index is not
something that is really difficult to learn, but I don't think that
everyone may understand it fully. Some may use Git for many months and
only then suddenly discover that "git diff" does not show all
uncommitted changes, but only changes between their working directory
and the index. It may sound strange, but it happens.

> Now, it makes me really, really sad that Git has a reputation of being 
> complicated, but I regularly hear from _my_ users that they do not 
> understand how that came about.

I think this reputation is largely due to people who open Git user
manual, read about >100 commands, were horrified and stopped learning.
Git is a powerful and very flexible tool, thus to use it to its fullest
you may really need to learn a lot, but it does not mean that you can
use it and be much more productive than with other VCS knowing only a
small fraction of all options. Thus if you can explain to users in terms
that they understood and connect that with their workflow, users may
find Git easier to use than SVN...

> 
> Am I the only one who deems teaching plumbing to users ("I like it raw!  
> So I teach it the same way!") harmful?

There is only one thing that seems to be true about teaching Git (or
anything else) -- there is no single method that works equally well
for anyone. Having said so, I must admit that teaching plumbing will
be probably not a good idea for most users, yet there are some who
prefer bottom-up approach. Some users will prefer to connect Git
functionality to their particular needs and solving some practical
tasks that they do day in, day out, while others may prefer to start
with more abstract things like DAG, structure of data, etc... For
the later users, when you explained these basic things, you do not
have to explain commands at all. They may occasionally ask you
something like: git grep works fine for me when I need to find
something in arbitrary file at some particular revision, but how
about finding something in a particular file at arbitrary revision?
Then you say -- look at git log, it should have the grep option. It
is usually all explanations that you need to provide for them. The
rest, they will quickly pick up on their own. Yet, majority users are
not like that. They seem to prefer to start with specific use cases
and only basic porcelain commands... So, I agree with you here.

Dmitry

  parent reply	other threads:[~2008-07-16 21:49 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-16 17:21 Considering teaching plumbing to users harmful Johannes Schindelin
2008-07-16 17:50 ` Jesper Eskilson
2008-07-16 18:14   ` Johannes Schindelin
2008-07-16 18:19     ` Jesper Eskilson
2008-07-16 18:27       ` Johannes Schindelin
2008-07-16 17:53 ` Avery Pennarun
2008-07-16 18:12   ` Johannes Schindelin
2008-07-16 18:35     ` Avery Pennarun
2008-07-16 20:13       ` Theodore Tso
2008-07-16 21:53       ` Daniel Barkalow
2008-07-17 11:18         ` David Kastrup
2008-07-17 15:52           ` Jakub Narebski
2008-07-17 16:05             ` David Kastrup
2008-07-17 16:18               ` Subversion's do-everything-via-copying paradigm ( was RE: Re: Considering teaching plumbing to users harmful) Craig L. Ching
2008-07-17 21:05                 ` David Kastrup
2008-07-17 22:06                   ` Craig L. Ching
2008-07-17 22:07                 ` Avery Pennarun
2008-07-17 22:11                   ` Junio C Hamano
2008-07-17 20:04               ` Considering teaching plumbing to users harmful Jakub Narebski
2008-07-17 20:12                 ` Kevin Ballard
2008-07-17 20:26                   ` Petr Baudis
2008-07-17 20:40                     ` Kevin Ballard
2008-07-17 21:03                       ` Jakub Narebski
2008-07-17 21:10                         ` Kevin Ballard
2008-07-17 20:34                   ` Jakub Narebski
2008-07-17 20:42                     ` Kevin Ballard
2008-07-17 20:15               ` Kevin Ballard
2008-07-17 21:02                 ` David Kastrup
2008-07-17 22:32                   ` Robin Rosenberg
2008-07-18  7:41               ` Dmitry Potapov
2008-07-17 16:11             ` Subversion is actually not so simple (was RE: Considering teaching plumbing to users harmful) Craig L. Ching
2008-07-17 17:37               ` Jakub Narebski
2008-07-17 19:00           ` Considering teaching plumbing to users harmful Daniel Barkalow
2008-07-16 18:18   ` Junio C Hamano
2008-07-16 18:51     ` Avery Pennarun
2008-07-16 18:59       ` Petr Baudis
2008-07-16 19:22         ` Avery Pennarun
2008-07-16 19:09       ` Junio C Hamano
2008-07-16 19:29         ` Avery Pennarun
2008-07-16 19:34           ` Junio C Hamano
2008-07-16 19:46             ` Avery Pennarun
2008-07-16 20:12               ` Junio C Hamano
2008-07-16 22:32                 ` Theodore Tso
2008-07-16 22:41                   ` Junio C Hamano
2008-07-16 22:53                   ` Sean Kelley
2008-07-16 23:17                   ` Nigel Magnay
2008-07-17  3:21                   ` Stephen Sinclair
2008-07-18 17:02                 ` Ping Yin
2008-07-16 22:24           ` Dmitry Potapov
2008-07-16 22:28           ` Johannes Schindelin
2008-07-16 22:49             ` Theodore Tso
2008-07-17  0:25               ` Johannes Schindelin
2008-07-17  2:47                 ` Theodore Tso
2008-07-17 14:21             ` Craig L. Ching
2008-07-17 14:51               ` Petr Baudis
2008-07-17 15:57                 ` J. Bruce Fields
2008-07-16 21:16       ` david
2008-07-16 21:59       ` Dmitry Potapov
2008-07-16 20:23   ` Stephen R. van den Berg
2008-07-16 20:27 ` Nicolas Pitre
2008-07-16 20:51 ` Junio C Hamano
2008-07-16 23:05   ` Johannes Schindelin
2008-07-16 23:40     ` Junio C Hamano
2008-07-17  0:02       ` Johannes Schindelin
2008-07-17  6:53         ` Junio C Hamano
2008-07-17 15:55   ` J. Bruce Fields
2008-07-17 16:03     ` Karl Hasselström
2008-07-17 18:16     ` Johannes Schindelin
2008-07-17 18:29       ` Junio C Hamano
2008-07-17 18:43         ` Johannes Schindelin
2008-07-17 19:10           ` Junio C Hamano
2008-07-18 14:35             ` J. Bruce Fields
2008-07-18  9:55           ` Addremove equivalent [was: Re: Considering teaching plumbing to users harmful] Michael J Gruber
2008-07-18 20:18             ` Jay Soffian
2008-07-18 23:03               ` Johannes Schindelin
2008-07-20  3:27               ` Addremove equivalent Junio C Hamano
2008-07-20  3:28                 ` [PATCH 1/2] builtin-add.c: restructure the code for maintainability Junio C Hamano
2008-07-20  3:29                 ` [PATCH 2/2] git-add -a: add all files Junio C Hamano
2008-07-20  3:32                   ` [PATCH 3/2] git-add -a: tests Junio C Hamano
2008-07-20  4:20                   ` [PATCH 2/2] git-add -a: add all files Tarmigan
2008-07-20  4:28                     ` Tarmigan
2008-07-20 10:56                     ` Johannes Schindelin
2008-07-20 12:45                       ` Jay Soffian
2008-07-20 18:30                         ` Junio C Hamano
2008-07-20 20:46                           ` Lars Noschinski
2008-07-20 23:59                           ` Jeff King
2008-07-21  0:06                             ` Junio C Hamano
2008-07-21  0:17                               ` Jeff King
2008-07-21  0:22                                 ` Jeff King
2008-07-21  2:11                           ` Jay Soffian
2008-07-20 20:34                         ` Sverre Rabbelier
2008-07-16 21:48 ` Dmitry Potapov [this message]
2008-07-16 23:19   ` Considering teaching plumbing to users harmful Johannes Schindelin
2008-07-16 22:09 ` Stephan Beyer
2008-07-16 23:22   ` Johannes Schindelin
2008-07-17  1:01     ` Stephan Beyer
2008-07-17  7:30 ` "Peter Valdemar Mørch (Lists)"
2008-07-17 12:38   ` Dmitry Potapov
2008-07-17 12:55   ` Theodore Tso
2008-07-17 13:35     ` Peter Valdemar Mørch
2008-07-17 14:26       ` Theodore Tso
2008-07-17 16:38     ` Junio C Hamano
2008-07-18  8:19 ` Andreas Ericsson
2008-07-18 18:26   ` Jeff King
2008-07-18 10:14 ` Suggestion: doc restructuring [was: Re: Considering teaching plumbing to users harmful] Michael J Gruber
2008-07-18 18:26   ` Jon Loeliger
2008-07-18 18:52     ` Craig L. Ching
2008-07-18 19:50     ` Suggestion: doc restructuring Junio C Hamano
2008-07-19  1:19   ` Suggestion: doc restructuring [was: Re: Considering teaching plumbing to users harmful] Johannes Schindelin
2008-07-20  8:14     ` Suggestion: doc restructuring Junio C Hamano
2008-07-20 11:02       ` Johannes Schindelin
2008-07-21  6:41       ` Andreas Ericsson
2008-07-21 10:04         ` Johannes Schindelin
2008-07-21 16:22         ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080716214849.GF2925@dpotapov.dyndns.org \
    --to=dpotapov@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).