commit-graph: show "unexpected subcommand" error

Bring the "commit-graph" command in line with the error output and general pattern in cmd_multi_pack_index(). Let's test for that output, and also cover the same potential bug as was fixed in the multi-pack-index command in 88617d11f9d (multi-pack-index: fix potential segfault without sub-command, 2021-07-19). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Reviewed-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ævar Arnfjörð Bjarmason committed Aug 23, 2021 at 14:30 UTC 367c5f36a6a0fa7f8f706b10f9bb2f0e28baaa1a
2 files changed +16 -1
builtin/commit-graph.c
+1
@@ -345,6 +345,7 @@ int cmd_commit_graph(int argc, const char **argv, const char *prefix)
345 else if (argc && !strcmp(argv[0], "write"))
346 return graph_write(argc, argv);
347
348 + error(_("unrecognized subcommand: %s"), argv[0]);
349 usage:
350 usage_with_options(builtin_commit_graph_usage,
351 builtin_commit_graph_options);
t/t5318-commit-graph.sh
+15 -1
@@ -6,10 +6,24 @@ test_description='commit graph'
6 GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=0
7
8 test_expect_success 'usage' '
9 - test_expect_code 129 git commit-graph write blah &&
9 + test_expect_code 129 git commit-graph write blah 2>err &&
10 test_expect_code 129 git commit-graph write verify
11 '
12
13 +test_expect_success 'usage shown without sub-command' '
14 + test_expect_code 129 git commit-graph 2>err &&
15 + ! grep error: err
16 +'
17 +
18 +test_expect_success 'usage shown with an error on unknown sub-command' '
19 + cat >expect <<-\EOF &&
20 + error: unrecognized subcommand: unknown
21 + EOF
22 + test_expect_code 129 git commit-graph unknown 2>stderr &&
23 + grep error stderr >actual &&
24 + test_cmp expect actual
25 +'
26 +
27 test_expect_success 'setup full repo' '
28 mkdir full &&
29 cd "$TRASH_DIRECTORY/full" &&