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
This commit is contained in:
@ -96,8 +96,9 @@ list::
|
|||||||
|
|
||||||
List details of each working tree. The main working tree is listed first,
|
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
|
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
|
whether the working tree is bare, the revision currently checked out, the
|
||||||
branch currently checked out (or "detached HEAD" if none).
|
branch currently checked out (or "detached HEAD" if none), and "locked" if
|
||||||
|
the worktree is locked.
|
||||||
|
|
||||||
lock::
|
lock::
|
||||||
|
|
||||||
|
@ -676,8 +676,11 @@ static void show_worktree(struct worktree *wt, int path_maxlen, int abbrev_len)
|
|||||||
} else
|
} else
|
||||||
strbuf_addstr(&sb, "(error)");
|
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);
|
strbuf_release(&sb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,6 +61,16 @@ test_expect_success '"list" all worktrees --porcelain' '
|
|||||||
test_cmp expect actual
|
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' '
|
test_expect_success 'bare repo setup' '
|
||||||
git init --bare bare1 &&
|
git init --bare bare1 &&
|
||||||
echo "data" >file1 &&
|
echo "data" >file1 &&
|
||||||
|
Reference in New Issue
Block a user