sparse-checkout: fill in some options boilerplate
authorJeff King <redacted>
Wed, 30 Sep 2020 12:30:10 +0000 (08:30 -0400)
committerJunio C Hamano <redacted>
Wed, 30 Sep 2020 19:53:48 +0000 (12:53 -0700)
The sparse-checkout passes along argv and argc to its sub-command helper
functions. Many of these sub-commands do not yet take any command-line
options, and ignore those parameters.

Let's instead add empty option lists and make sure we call
parse_options(). That will give a useful error message for something
like:

  git sparse-checkout list --nonsense

which currently just silently ignores the unknown option.

As a bonus, it also silences some -Wunused-parameter warnings.

Signed-off-by: Jeff King <redacted>
Signed-off-by: Junio C Hamano <redacted>
builtin/sparse-checkout.c

index 4003f4d13a7ffeafbf9827de9eaab491c600ed96..e3140db2a0a63f244070d6f9fb9e838a4c2dbe4f 100644 (file)
@@ -46,12 +46,24 @@ static void write_patterns_to_file(FILE *fp, struct pattern_list *pl)
        }
 }
 
+static char const * const builtin_sparse_checkout_list_usage[] = {
+       N_("git sparse-checkout list"),
+       NULL
+};
+
 static int sparse_checkout_list(int argc, const char **argv)
 {
+       static struct option builtin_sparse_checkout_list_options[] = {
+               OPT_END(),
+       };
        struct pattern_list pl;
        char *sparse_filename;
        int res;
 
+       argc = parse_options(argc, argv, NULL,
+                            builtin_sparse_checkout_list_options,
+                            builtin_sparse_checkout_list_usage, 0);
+
        memset(&pl, 0, sizeof(pl));
 
        pl.use_cone_patterns = core_sparse_checkout_cone;
@@ -560,17 +572,42 @@ static int sparse_checkout_set(int argc, const char **argv, const char *prefix,
        return modify_pattern_list(argc, argv, m);
 }
 
+static char const * const builtin_sparse_checkout_reapply_usage[] = {
+       N_("git sparse-checkout reapply"),
+       NULL
+};
+
 static int sparse_checkout_reapply(int argc, const char **argv)
 {
+       static struct option builtin_sparse_checkout_reapply_options[] = {
+               OPT_END(),
+       };
+
+       argc = parse_options(argc, argv, NULL,
+                            builtin_sparse_checkout_reapply_options,
+                            builtin_sparse_checkout_reapply_usage, 0);
+
        repo_read_index(the_repository);
        return update_working_directory(NULL);
 }
 
+static char const * const builtin_sparse_checkout_disable_usage[] = {
+       N_("git sparse-checkout disable"),
+       NULL
+};
+
 static int sparse_checkout_disable(int argc, const char **argv)
 {
+       static struct option builtin_sparse_checkout_disable_options[] = {
+               OPT_END(),
+       };
        struct pattern_list pl;
        struct strbuf match_all = STRBUF_INIT;
 
+       argc = parse_options(argc, argv, NULL,
+                            builtin_sparse_checkout_disable_options,
+                            builtin_sparse_checkout_disable_usage, 0);
+
        repo_read_index(the_repository);
 
        memset(&pl, 0, sizeof(pl));
git clone https://git.99rst.org/PROJECT