summaryrefslogtreecommitdiff
path: root/builtin/worktree.c
diff options
context:
space:
mode:
authorRafael Silva <rafaeloliveira.cs@gmail.com>2020-10-11 10:11:52 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-10-12 19:24:29 (GMT)
commitc57b3367bed488469d24a21446731e9e71846ded (patch)
tree47529fa7d034d17c49fc10c34c839fdbbc4bbdf1 /builtin/worktree.c
parentd4a392452e292ff924e79ec8458611c0f679d6d4 (diff)
downloadgit-c57b3367bed488469d24a21446731e9e71846ded.zip
git-c57b3367bed488469d24a21446731e9e71846ded.tar.gz
git-c57b3367bed488469d24a21446731e9e71846ded.tar.bz2
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>
Diffstat (limited to 'builtin/worktree.c')
-rw-r--r--builtin/worktree.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 99abaee..ce56fda 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -676,8 +676,11 @@ static void show_worktree(struct worktree *wt, int path_maxlen, int abbrev_len)
} else
strbuf_addstr(&sb, "(error)");
}
- printf("%s\n", sb.buf);
+ if (!is_main_worktree(wt) && worktree_lock_reason(wt))
+ strbuf_addstr(&sb, " locked");
+
+ printf("%s\n", sb.buf);
strbuf_release(&sb);
}