Perceive simple "git worktree" without a subcommand as "git worktree list" for consistency with "git submodule" that already can work in such a way. Signed-off-by: Nicholas Guriev <guriev-ns@xxxxx> --- builtin/worktree.c | 4 ++-- t/t2402-worktree-list.sh | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/builtin/worktree.c b/builtin/worktree.c index d99db356..ad949eb5 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -960,10 +960,10 @@ int cmd_worktree(int ac, const char **av, const char *prefix) git_config(git_worktree_config, NULL); - if (ac < 2) - usage_with_options(worktree_usage, options); if (!prefix) prefix = ""; + if (ac < 2 || av[1][0] == '-') + return list(ac, av, prefix); if (!strcmp(av[1], "add")) return add(ac - 1, av + 1, prefix); if (!strcmp(av[1], "prune")) diff --git a/t/t2402-worktree-list.sh b/t/t2402-worktree-list.sh index 52585ec2..e53bafa3 100755 --- a/t/t2402-worktree-list.sh +++ b/t/t2402-worktree-list.sh @@ -157,4 +157,16 @@ test_expect_success 'worktree path when called in .git directory' ' test_cmp list1 list2 ' +test_expect_success '"list" is the default command' ' + git worktree >out1 && + git worktree list >out2 && + test_cmp out1 out2 +' + +test_expect_success 'options are passed to default command' ' + git worktree --porcelain >out1 && + git worktree list --porcelain >out2 && + test_cmp out1 out2 +' + test_done -- 2.25.1