Subject: [PATCH v3 0/1] Teach "worktree list" to annotate locked worktrees

From: Rafael Silva <[email-masked]>
Date: Sun, 11 Oct 2020 10:11:51 +0000

This patch introduces a new information on the "git worktree list"
command output to annotate when a worktree is locked with a "locked" text.

The intent is to improve the user experience as the "git worktree remove"
refuses to remove a locked worktree. By adding the "locked" annotation
to the "git worktree list" command, the user would not attempt to remove
a worktree or would know to use "git worktree remove -f -f <path>"
to force a worktree removal.

The output of the "worktree list" command becomes:

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

Changes since v2:

  * Regexes used to test the "locked" anotation are anchored and space is added
    between the worktree path and OID hex string to avoid false-positives and
    to ensure there is space between the worktree path and the OID.  

Changes since v1:

  * Drooped the parenthesis in "(locked)" to reduce the noise and allow
    easier extensions of more annotations design proposed in [2].
  * Rewrite of the commit message with a much better one.
  * Simplification of the test added to `t2402` with only caring about
    the "locked" annotation at the end of the "worktree list" output.

[2]: https://lore.kernel.org/git/[email-masked]/

Thank you Junio C Hamano and Eric Sunshine for the detailed review
and helping with this patch.

Rafael Silva (1):
  worktree: teach `list` to annotate locked worktree

 Documentation/git-worktree.txt |  3 ++-
 builtin/worktree.c             |  5 ++++-
 t/t2402-worktree-list.sh       | 10 ++++++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

-- 
2.29.0.rc0.253.gc238dab514