On Thu, Feb 21, 2019 at 4:59 AM Jeff King <peff@xxxxxxxx> wrote: > > On Tue, Feb 19, 2019 at 05:31:23PM +0900, nbelakovski@xxxxxxxxx wrote: > > > From: Nickolai Belakovski <nbelakovski@xxxxxxxxx> > > > > To display worktree path for refs checked out in a linked worktree > > This would be a good place to describe why this is useful. :) > > I do not have an opinion myself. Patch 2 makes a lot of sense to me, but > I don't know if people would like this one or not. I don't use "-v" > myself, though, so what do I know. :) I threw this one in because I thought it wouldn't be clear to the average user why some branches are in cyan. By putting the worktree path in cyan on the next level of output I thought this would help the user make the connection, but actually I don't have strong feelings about this one. > > > diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt > > index f2e5a07d64..326a45f648 100644 > > --- a/Documentation/git-branch.txt > > +++ b/Documentation/git-branch.txt > > @@ -168,8 +168,10 @@ This option is only applicable in non-verbose mode. > > When in list mode, > > show sha1 and commit subject line for each head, along with > > relationship to upstream branch (if any). If given twice, print > > - the name of the upstream branch, as well (see also `git remote > > - show <remote>`). > > + the path of the linked worktree, if applicable (not applicable > > + for current worktree since user's path will already be in current > > + worktree) and the name of the upstream branch, as well (see also > > + `git remote show <remote>`). > > That parenthetical feels a bit awkward. Maybe: > > ...print the path of the linked worktree (if any) and the name of the > upstream branch, as well (see also `git remote show <remote>`). Note > that the current worktree's HEAD will not have its path printed (it > will always be your current directory). Sure I can make that change > > > diff --git a/builtin/branch.c b/builtin/branch.c > > index c2a86362bb..0b8ba9e4c5 100644 > > --- a/builtin/branch.c > > +++ b/builtin/branch.c > > @@ -367,9 +367,13 @@ static char *build_format(struct ref_filter *filter, int maxwidth, const char *r > > strbuf_addf(&local, " %s ", obname.buf); > > > > if (filter->verbose > 1) > > + { > > + strbuf_addf(&local, "%%(if:notequals=*)%%(HEAD)%%(then)%%(if)%%(worktreepath)%%(then)(%s%%(worktreepath)%s) %%(end)%%(end)", > > + branch_get_color(BRANCH_COLOR_WORKTREE), branch_get_color(BRANCH_COLOR_RESET)); > > strbuf_addf(&local, "%%(if)%%(upstream)%%(then)[%s%%(upstream:short)%s%%(if)%%(upstream:track)" > > "%%(then): %%(upstream:track,nobracket)%%(end)] %%(end)%%(contents:subject)", > > branch_get_color(BRANCH_COLOR_UPSTREAM), branch_get_color(BRANCH_COLOR_RESET)); > > + } > > Another unreadable long line (both the one you're adding, and the existing > one!). I don't know if it's worth trying to clean these up, but if we > do, it might be worth hitting the existing ones, too. > > I'm OK if that comes as a patch on top later on, though. Agreed, but there's enough lines like this that it'll just look inconsistent if only one were broken up. > > > diff --git a/t/t3203-branch-output.sh b/t/t3203-branch-output.sh > index 012ddde7f2..8065279be6 100755 > --- a/t/t3203-branch-output.sh > +++ b/t/t3203-branch-output.sh > @@ -284,22 +284,20 @@ test_expect_success '--color overrides auto-color' ' > test_cmp expect.color actual > ' > > -# This test case has some special code to strip the first 30 characters or so > -# of the output so that we do not have to put commit hashes into the expect > test_expect_success 'verbose output lists worktree path' ' > + one=$(git rev-parse --short HEAD) && > + two=$(git rev-parse --short master) && > cat >expect <<-EOF && > - one > - one > - two > - one > - two > - ($(pwd)/worktree_dir) two > - two > - two > + * (HEAD detached from fromtag) $one one > + ambiguous $one one > + branch-one $two two > + branch-two $one one > + master $two two > + + master_worktree $two ($(pwd)/worktree_dir) two > + ref-to-branch $two two > + ref-to-remote $two two > EOF > - git branch -vv >tmp && > - SUBSTRLENGTH=$(head -1 tmp | awk "{print index(\$0, \"one\")}") && > - awk -v substrlength="$SUBSTRLENGTH" "{print substr(\$0,substrlength,length(\$0))}" <tmp >actual && > + git branch -vv >actual && > test_cmp expect actual > ' > > > I don't like how it depends on the space alignment of the branches, but > I do like that you can clearly see which branch is being annotated. Thanks for the suggestion. While I'm kinda proud of my awk thing, I think yours is a lot easier to read. Will add. > > -Peff