Browse Source

Merge branch 'rs/worktree-list-show-locked'

"git worktree list" now shows if each worktree is locked.  This
possibly may open us to show other kinds of states in the future.

* rs/worktree-list-show-locked:
  worktree: teach `list` to annotate locked worktree
maint
Junio C Hamano 4 years ago
parent
commit
26bb5437f6
  1. 5
      Documentation/git-worktree.txt
  2. 5
      builtin/worktree.c
  3. 10
      t/t2402-worktree-list.sh

5
Documentation/git-worktree.txt

@ -96,8 +96,9 @@ list:: @@ -96,8 +96,9 @@ list::

List details of each working tree. The main working tree is listed first,
followed by each of the linked working trees. The output details include
whether the working tree is bare, the revision currently checked out, and the
branch currently checked out (or "detached HEAD" if none).
whether the working tree is bare, the revision currently checked out, the
branch currently checked out (or "detached HEAD" if none), and "locked" if
the worktree is locked.

lock::


5
builtin/worktree.c

@ -676,8 +676,11 @@ static void show_worktree(struct worktree *wt, int path_maxlen, int abbrev_len) @@ -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);
}


10
t/t2402-worktree-list.sh

@ -61,6 +61,16 @@ test_expect_success '"list" all worktrees --porcelain' ' @@ -61,6 +61,16 @@ test_expect_success '"list" all worktrees --porcelain' '
test_cmp expect actual
'

test_expect_success '"list" all worktress with locked annotation' '
test_when_finished "rm -rf locked unlocked out && git worktree prune" &&
git worktree add --detach locked master &&
git worktree add --detach unlocked master &&
git worktree lock locked &&
git worktree list >out &&
grep "/locked *[0-9a-f].* locked$" out &&
! grep "/unlocked *[0-9a-f].* locked$" out
'

test_expect_success 'bare repo setup' '
git init --bare bare1 &&
echo "data" >file1 &&

Loading…
Cancel
Save