Subject: Re: [PATCH v2 0/2] clone: simplify progress message

From: Pete Harlan <[email-masked]>
Date: Mon, 10 May 2010 16:22:54 -0700

On 05/10/2010 03:31 AM, Michael J Gruber wrote:
> Jeff King venit, vidit, dixit 10.05.2010 07:47:
>> On Sun, May 09, 2010 at 01:09:14PM -0700, Pete Harlan wrote:
>> 
>>>> I guess it comes down to how much detail we want to show.
>>> 
>>> For me it isn't only a matter of detail; I find "Cloning into 
>>> bar/.git" misleading, since bar is getting more than a .git 
>>> directory.
>> 
>> Yeah, I can buy that line of reasoning. Junio's nitpick aside, I 
>> think most users perceive the clone process as creating the whole 
>> "bar" directory.
>> 
>>> Thank you for looking at this.  I agree with you, and have added 
>>> a second patch that implements that.
>> 
>> These patches look good to me. I agree with Junio about just 
>> squashing them.
>> 
>> -Peff
> 
> Back from a conference, I'm being late for the party (Which way
> round is better? ;) ).
> 
> But I still want to suggest not sacrificing correctness for "user's 
> expectations" and rather trying to do combine them. So how about 
> saying
> 
> Cloning into $GIT_DIR... Checking out branch $branch in $WORK_DIR...
> 
> where the latter happens for non-bare repos only, of course, and 
> incidently confirms the use of "-b" or of the default.
> 
> Michael

Thanks for looking at this.  The patch you posted reports, e.g.:

  % git clone foo bar
  Cloning into /tmp/git/bar/.git...
  done.
  Checking out branch master into worktree bar.
  %

I'd like to see "worktree" either omitted or replaced with "working
directory".  Git works on trees, but "working directory" is a term
ordinary users understand and "bar" is a directory being populated
with files so there's nothing wrong with the user thinking of it that
way.

But on a different note, I think we don't have to be so verbose.  If
the user asks for details with -v then be as chatty as we want, but
for the most part operations that succeed should do so quietly.

My original (unsent) patch was based on master from a couple of weeks
ago and was merely going to remove the db-initialization message and
replace it with nothing, so a successful local clone would look like:

  % git clone foo bar
  %

I don't think it needs to be more complicated than that.  And there's
real value in silent success: every message output has to be read by
the user because it might be an error message.

Since Junio solved the original problem in a different way (still
reporting a message but making it less scary) I made a patch to make
his message more (in my opinion) friendly, but I think output from
normal commands should be as simple as possible.

At my previous job I converted a team of ten or so people from
Subversion to Git, and virtually everyone on the team besides myself
considered Git difficult to use and not worth the trouble.  We didn't
have enough time with it (three months) so I couldn't tell if they
ever would have come around, but each little thing that a user could
perceive as complicated adds up.

So: I'm fine with your patch (with a removed "worktree" or replace it
with "working directory") if writing a thorough message is considered
desirable.  But my vote is for more simple output (as in my patches),
or better yet nothing at all unless there's a problem.  The user can
ask for progress with -v if they want it.

--Pete