]> git.ipfire.org Git - thirdparty/git.git/commitdiff
pack-objects: fix --no-quiet
authorRené Scharfe <l.s.r@web.de>
Fri, 21 Jul 2023 12:41:53 +0000 (14:41 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 21 Jul 2023 17:04:04 +0000 (10:04 -0700)
Since 99fb6e04cb (pack-objects: convert to use parse_options(),
2012-02-01) git pack-objects has accepted the option --no-quiet, but it
does the same as --quiet.  That's because it's defined using OPT_SET_INT
with a value of 0, which sets 0 when negated, too.

Make --no-quiet equivalent to --progress and ignore it if --all-progress
was given.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/pack-objects.c

index 193bb0b0dffd1fb71411020dab86417f691252cb..697662c655a48d79c89e78d251273f750ec4d804 100644 (file)
@@ -4118,6 +4118,18 @@ static void add_extra_kept_packs(const struct string_list *names)
        }
 }
 
+static int option_parse_quiet(const struct option *opt, const char *arg,
+                             int unset)
+{
+       BUG_ON_OPT_ARG(arg);
+
+       if (!unset)
+               progress = 0;
+       else if (!progress)
+               progress = 1;
+       return 0;
+}
+
 static int option_parse_index_version(const struct option *opt,
                                      const char *arg, int unset)
 {
@@ -4179,8 +4191,9 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
                LIST_OBJECTS_FILTER_INIT;
 
        struct option pack_objects_options[] = {
-               OPT_SET_INT('q', "quiet", &progress,
-                           N_("do not show progress meter"), 0),
+               OPT_CALLBACK_F('q', "quiet", NULL, NULL,
+                              N_("do not show progress meter"),
+                              PARSE_OPT_NOARG, option_parse_quiet),
                OPT_SET_INT(0, "progress", &progress,
                            N_("show progress meter"), 1),
                OPT_SET_INT(0, "all-progress", &progress,