worktree: teach `list` to annotate locked worktree
authorRafael Silva <rafaeloliveira.cs@gmail.com>
Sun, 11 Oct 2020 10:11:52 +0000 (10:11 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 12 Oct 2020 19:24:29 +0000 (12:24 -0700)
commitc57b3367bed488469d24a21446731e9e71846ded
tree47529fa7d034d17c49fc10c34c839fdbbc4bbdf1
parentd4a392452e292ff924e79ec8458611c0f679d6d4
worktree: teach `list` to annotate locked worktree

The "git worktree list" shows the absolute path to the working tree,
the commit that is checked out and the name of the branch. It is not
immediately obvious which of the worktrees, if any, are locked.

"git worktree remove" refuses to remove a locked worktree with
an error message. If "git worktree list" told which worktrees
are locked in its output, the user would not even attempt to
remove such a worktree, or would realize that
"git worktree remove -f -f <path>" is required.

Teach "git worktree list" to append "locked" to its output.
The output from the command becomes like so:

    $ git worktree list
    /path/to/main             abc123 [master]
    /path/to/worktree         456def (detached HEAD)
    /path/to/locked-worktree  123abc (detached HEAD) locked

Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Rafael Silva <rafaeloliveira.cs@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-worktree.txt
builtin/worktree.c
t/t2402-worktree-list.sh