[PATCH v4 6/7] commit-graph: show usage on "commit-graph [write|verify] garbage"
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Aug 23, 2021, 12:30 UTC
- Message-ID
- <patch-v4-6.7-85552a6f88c-20210823T122854Z-avarab@gmail.com>
- In-Reply-To
- <cover-v4-0.7-00000000000-20210823T122854Z-avarab@gmail.com>
Change the parse_options() invocation in the commit-graph code to error on unknown leftover argv elements, in addition to the existing and implicit erroring via parse_options() on unknown options.
We'd already error in cmd_commit_graph() on e.g.:
git commit-graph unknown verify
git commit-graph --unknown verifyBut here we're calling parse_options() twice more for the "write" and "verify" subcommands. We did not do the same checking for leftover argv elements there. As a result we'd silently accept garbage in these subcommands, let's not do that.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- builtin/commit-graph.c | 4 ++++ t/t5318-commit-graph.sh | 5 +++++ 2 files changed, 9 insertions(+)
diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c index bf34aa43f22..0457903f18f 100644 --- a/builtin/commit-graph.c +++ b/builtin/commit-graph.c @@ -105,6 +105,8 @@ static int graph_verify(int argc, const char **argv) argc = parse_options(argc, argv, NULL, options, builtin_commit_graph_verify_usage, 0); + if (argc) + usage_with_options(builtin_commit_graph_verify_usage, options); if (!opts.obj_dir) opts.obj_dir = get_object_directory(); @@ -262,6 +264,8 @@ static int graph_write(int argc, const char **argv) argc = parse_options(argc, argv, NULL, options, builtin_commit_graph_write_usage, 0); + if (argc) + usage_with_options(builtin_commit_graph_write_usage, options); if (opts.reachable + opts.stdin_packs + opts.stdin_commits > 1) die(_("use at most one of --reachable, --stdin-commits, or --stdin-packs")); diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh index af88f805aa2..09a2ccd2920 100755 --- a/t/t5318-commit-graph.sh +++ b/t/t5318-commit-graph.sh @@ -5,6 +5,11 @@ test_description='commit graph' GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=0 +test_expect_success 'usage' ' + test_expect_code 129 git commit-graph write blah && + test_expect_code 129 git commit-graph write verify +' + test_expect_success 'setup full repo' ' mkdir full && cd "$TRASH_DIRECTORY/full" &&
-- 2.33.0.662.gbc81f8cbdca