mbox series

[v3,0/1] Teach "worktree list" to annotate locked worktrees

Message ID 20201011101152.5291-1-rafaeloliveira.cs@gmail.com (mailing list archive)
Headers show
Series Teach "worktree list" to annotate locked worktrees | expand

Message

Rafael Silva Oct. 11, 2020, 10:11 a.m. UTC
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/CAPig+cQF6V8HNdMX5AZbmz3_w2WhSfA4SFfNhQqxXBqPXTZL+w@mail.gmail.com/

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(-)