Re: [PATCH v7 2/4] worktree: improve message when creating a new worktree
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Apr 23, 2018, 04:27 UTC
- Message-ID
- <CAPig+cQSgY3yqYtZwTCY7Mq1e66WczbV3vM7=KsKH4b7peDw+Q@mail.gmail.com>
- In-Reply-To
- <20180415202917.4360-3-t.gummerer@gmail.com>
On Sun, Apr 15, 2018 at 4:29 PM, Thomas Gummerer <t.gummerer@gmail.com> wrote:
Show 27 quoted lines
> 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.
Show 11 quoted lines
> 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]Show 9 quoted lines
> 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 <sunshine@sunshineco.com> > Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>