On Sun, Apr 15, 2018 at 4:29 PM, Thomas Gummerer <t.gumme...@gmail.com> wrote:
> Currently 'git worktree add' produces output like the following:
>
>     Preparing ../foo (identifier foo)
>     HEAD is now at 26da330922 <title>
> [...]
> Instead of this message, print a message that gives the user a bit more
> detail of what exactly 'git worktree' is doing.  There are various dwim
> modes which are perform some magic under the hood, which should be
> helpful to users.  Just from the output of the command it is not always
> visible to users what exactly has happened.
>
> Help the users a bit more by modifying the "Preparing ..." message and
> adding some additional information of what 'git worktree add' did under
> the hood, while not displaying the identifier anymore.
>
> Currently this ends up in three different cases:
>
>   - 'git worktree add -b ...' or 'git worktree add <path>' [...]
>
>   - 'git worktree add -B ...', which may either create a new branch if
>     the branch with the given name does not exist yet, or resets an
>     existing branch to the current HEAD, or the commit-ish given.
>     Depending on which action is taken, we'll end up with the following
>     output:
>
>       Preparing worktree (resetting branch 'next' (was at caa68db14))
>       HEAD is now at 26da330922 <title>

The (...) embedded inside another (...) is ugly and hard to read.
Better perhaps:

    Preparing worktree (resetting branch 'next'; was at caa68db14)

Not necessarily worth a re-roll. It would be nice to see this series
land; perhaps this can be tweaked later.

>     or:
>
>       Preparing worktree (new branch '<branch>')
>       HEAD is now at 26da330922 <title>
>
>   - 'git worktree add --detach' or 'git worktree add <path> <branch>',
>     both of which create a new worktree with a detached HEAD, for which
>     we will print the following output:
>
>       Preparing worktree (detached HEAD 26da330922)
>       HEAD is now at 26da330922 <title>

This is inaccurate, isn't it? Certainly, specifying something like
"origin/floop" for <branch> ends up detached:

    % git worktree add w1 origin/floop
    ...
    % git worktree list
    /proj     fe0a9eaf31 [master]
    /proj/w1  b46fe60e1d (detached HEAD)

but specifying an existing local branch (say "wip") does not end up detached:

    % git worktree add w2 wip
    ...
    % git worktree list
    /proj     fe0a9eaf31 [master]
    /proj/w1  b46fe60e1d (detached HEAD)
    /proj/w2  820ed2a513 [wip]

> Additionally currently the "Preparing ..." line is printed to stderr,
> while the "HEAD is now at ..." line is printed to stdout by 'git reset
> --hard', which is used internally by 'git worktree add'.  Fix this
> inconsistency by printing the "Preparing ..." message to stdout as
> well.  As "Preparing ..." is not an error, stdout also seems like the
> more appropriate output stream.
>
> Helped-by: Eric Sunshine <sunsh...@sunshineco.com>
> Signed-off-by: Thomas Gummerer <t.gumme...@gmail.com>

Reply via email to