DORMANTno replies

[PATCH] worktree: treat "list" as default command

From: Nicholas Guriev <hidden>
Date: 2020-06-13 07:34:12
Subsystem: the rest · Maintainer: Linus Torvalds

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 <redacted>
---
 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help