git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Pierre Habouzit <madcoder@debian.org>, Jeff King <peff@peff.net>,
	Jakub Narebski <jnareb@gmail.com>,
	Christian Couder <chriscool@tuxfamily.org>,
	git@vger.kernel.org, Junio C Hamano <g
Subject: Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.
Date: Tue, 11 Dec 2007 16:48:41 +0100	[thread overview]
Message-ID: <20071211154841.GA29805@elte.hu> (raw)
In-Reply-To: <20071211152412.GB15448@artemis.madism.org>


* Pierre Habouzit <madcoder@debian.org> wrote:

> > which is quite a bit confusing to someone who'd like to keep as few 
> > details of command line arguments in his head as possible :-)
> 
> Because git-shortlog insists on you passing a reference first, HEAD is 
> not implicit if you pass something that looks like a path first. This 
> is arguably wrong. What you meant here is:
> 
> $ git-shortlog -n -s HEAD kernel/
> 
> The reason IIRC is that git-shortlog once only read things on stdin, 
> and this keeps backward compatbility to `git-shortlog` without any 
> arguments.
> 
> Sometimes history hurts :) I don't think there is much we can do on a 
> short timescale. Maybe the old way can be slowly deprecated, and then 
> git-shortlog will be able to act like git-log.

if we are growing legacies in git this fast it will turn itself into CVS 
very quickly, give or take 20 years ;-) I think a straightforward usage 
model is paramount, so phasing out such inconsistencies as early as 
possible in the project's lifetime should be a priority IMHO. Git has a 
very, very 'refreshing' approach to information management, and that 
should permeate it all across. It's easy to be "fresh" in the beginning 
of a project - maintaining freshness for years is a lot harder. (i dont 
suggest to break compatibility, but to be aware of such inconsitencies 
and make it a priority to get rid of them. It does not help that such 
inconsistencies are only apparent to git newbies.)

another thing i noticed that bites git newbies is that there are 
commands that do not do the "obvious" thing (to a newbie) and there are 
commands that just dont tell what they are doing. It would be very 
helpful if git was just a little bit more verbose about what it does. 
I.e. use the standard output for ... actual output, and there will be an 
instant and pleasant feedback loop between newbie and tool.

It should basically "teach" the user along the way about what is being 
done, so that it quickly becomes an automatism. Especially where 
concepts differ from legacy SCMs. When is the index updated, when do 
files get modified, how branching works, etc.

for example, if i type "git-checkout" in a Linux kernel tree, it just 
sits there for up to a minute, and "does nothing". That is totally 
wrong, human-interaction wise. Then after a minute it just returns. What 
happened? Why? Where? A newbie would then try "git-checkout -v", using 
the well-established "verbose" flag, but that gives:

 Usage: /usr/bin/git-checkout [-q] [-f] [-b <new_branch>] [-m] [<branch>] [<paths>...]

That's what a newbie asks. We are trying to turn the world of SCM's 
upside down with git, and we should do that by teaching things gradually 
and by being very explicit what happens and why, when a command is typed 
;-)

i could go on and on with other examples. (should I ? ;-)

It's small, little details like that and if we fix a few dozen of them 
it will do _wonders_ to user education, really. The best tools are the 
ones that emit just about information to essentially give a tutorial to 
the newbie about the philosophy and workings of the tool - without being 
annoying to advanced users. It flattens the learning curve and increases 
adoption rate enormously. It also helps people learn their way out of 
the mental deformations that CVS causes ;-)

And we could do this by adding a -q "quiet" flag, to restore the current 
'silent' behavior of git. I could then do this in my .bashrc:

   alias git='git -q'

to get the old, quiet behavior. This issue is pretty much the only 
conceptual advantage i can see of the competition like hg/mercurial ;-)

Ok, enough ranting for today i guess =B-)

	Ingo

  parent reply	other threads:[~2007-12-11 15:49 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-07  9:34 git-bisect feature suggestion: "git-bisect diff" Ingo Molnar
2007-12-07  9:58 ` Junio C Hamano
2007-12-07 10:25   ` Junio C Hamano
2007-12-07 11:21     ` Ingo Molnar
2007-12-07 19:28       ` Junio C Hamano
2007-12-07 19:46         ` Ingo Molnar
2007-12-07 21:34     ` Jeff King
2007-12-07 21:35       ` Jeff King
2007-12-07 21:44         ` Junio C Hamano
2007-12-07 21:55           ` Jeff King
2007-12-07 22:03             ` Junio C Hamano
2007-12-07 22:07               ` Jeff King
2007-12-08  2:54                 ` Junio C Hamano
2007-12-08  5:36 ` Christian Couder
2007-12-08 15:29   ` Ingo Molnar
2007-12-09  5:33     ` git-bisect run make -j64 kernel/ (was Re: git-bisect feature suggestion: "git-bisect diff") Christian Couder
2007-12-12  9:43       ` Ingo Molnar
2007-12-11  9:24   ` git-bisect feature suggestion: "git-bisect diff" Ingo Molnar
2007-12-11  9:29     ` Pierre Habouzit
2007-12-11 10:13       ` Jakub Narebski
2007-12-11 11:59         ` Pierre Habouzit
2007-12-11 12:25           ` Jeff King
2007-12-11 12:33             ` Jeff King
2007-12-11 14:05             ` Ingo Molnar
2007-12-11 14:43               ` [PATCH] Invert numbers and names in the git-shortlog summary mode Pierre Habouzit
2007-12-11 14:57                 ` Ingo Molnar
2007-12-11 15:24                   ` Pierre Habouzit
2007-12-11 15:34                     ` Nicolas Pitre
2007-12-11 18:09                       ` Junio C Hamano
2007-12-11 15:48                     ` Ingo Molnar [this message]
2007-12-11 16:07                       ` Pierre Habouzit
2007-12-11 16:11                         ` Pierre Habouzit
2007-12-11 21:13                         ` Ingo Molnar
2007-12-11 22:21                           ` Junio C Hamano
2007-12-11 17:58                 ` Junio C Hamano
2007-12-11 10:17       ` git-bisect feature suggestion: "git-bisect diff" Ingo Molnar

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

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

  git send-email \
    --in-reply-to=20071211154841.GA29805@elte.hu \
    --to=mingo@elte.hu \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    --cc=madcoder@debian.org \
    --cc=peff@peff.net \
    /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.
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 NNTP newsgroup(s).