From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, me@ttaylorr.com, gitster@pobox.com,
Derrick Stolee <derrickstolee@github.com>,
Derrick Stolee <dstolee@microsoft.com>
Subject: Re: [PATCH 2/2] repack: make '--quiet' disable progress
Date: Sat, 18 Dec 2021 10:55:33 +0100 [thread overview]
Message-ID: <211218.861r2axmk3.gmgdl@evledraar.gmail.com> (raw)
In-Reply-To: <3eff83d9ae14023f3527dfeb419cf8259f6d053d.1639758526.git.gitgitgadget@gmail.com>
On Fri, Dec 17 2021, Derrick Stolee via GitGitGadget wrote:
> From: Derrick Stolee <dstolee@microsoft.com>
>
> While testing some ideas in 'git repack', I ran it with '--quiet' and
> discovered that some progress output was still shown. Specifically, the
> output for writing the multi-pack-index showed the progress.
>
> The 'show_progress' variable in cmd_repack() is initialized with
> isatty(2) and is not modified at all by the '--quiet' flag. The
> '--quiet' flag modifies the po_args.quiet option which is translated
> into a '--quiet' flag for the 'git pack-objects' child process. However,
> 'show_progress' is used to directly send progress information to the
> multi-pack-index writing logic which does not use a child process.
>
> The fix here is to modify 'show_progress' to be false if po_opts.quiet
> is true, and isatty(2) otherwise. This new expectation simplifies a
> later condition that checks both.
>
> This is difficult to test because the isatty(2) already prevents the
> progess indicators from appearing when we redirect stderr to a file.
>
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> ---
> builtin/repack.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/builtin/repack.c b/builtin/repack.c
> index 1f128b7c90b..c393a5db774 100644
> --- a/builtin/repack.c
> +++ b/builtin/repack.c
> @@ -612,7 +612,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
> struct tempfile *refs_snapshot = NULL;
> int i, ext, ret;
> FILE *out;
> - int show_progress = isatty(2);
> + int show_progress;
>
> /* variables to be filled by option parsing */
> int pack_everything = 0;
> @@ -725,6 +725,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
>
> prepare_pack_objects(&cmd, &po_args);
>
> + show_progress = !po_args.quiet && isatty(2);
> +
> strvec_push(&cmd.args, "--keep-true-parents");
> if (!pack_kept_objects)
> strvec_push(&cmd.args, "--honor-pack-keep");
> @@ -926,7 +928,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
> }
> strbuf_release(&buf);
> }
> - if (!po_args.quiet && show_progress)
> + if (show_progress)
> opts |= PRUNE_PACKED_VERBOSE;
> prune_packed_objects(opts);
This seems like a good change, but the documentation could really use an
update (also before this change). It just says about -q:
Pass the -q option to git pack-objects. See git-pack-objects(1).
But do various things in "git-repack" itself differently if it's
supplied.
next prev parent reply other threads:[~2021-12-18 9:57 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-17 16:28 [PATCH 0/2] Two small 'git repack' fixes Derrick Stolee via GitGitGadget
2021-12-17 16:28 ` [PATCH 1/2] repack: respect kept objects with '--write-midx -b' Derrick Stolee via GitGitGadget
2021-12-17 17:24 ` Jeff King
2021-12-20 13:40 ` Derrick Stolee
2021-12-20 13:50 ` Jeff King
2021-12-18 9:58 ` Ævar Arnfjörð Bjarmason
2021-12-17 16:28 ` [PATCH 2/2] repack: make '--quiet' disable progress Derrick Stolee via GitGitGadget
2021-12-17 18:10 ` Jeff King
2021-12-20 13:37 ` Derrick Stolee
2021-12-20 13:49 ` Jeff King
2021-12-20 14:46 ` Derrick Stolee
2021-12-18 9:55 ` Ævar Arnfjörð Bjarmason [this message]
2021-12-20 13:38 ` Derrick Stolee
2021-12-20 14:48 ` [PATCH v2 0/2] Two small 'git repack' fixes Derrick Stolee via GitGitGadget
2021-12-20 14:48 ` [PATCH v2 1/2] repack: respect kept objects with '--write-midx -b' Derrick Stolee via GitGitGadget
2021-12-20 14:48 ` [PATCH v2 2/2] repack: make '--quiet' disable progress Derrick Stolee via GitGitGadget
2021-12-20 19:01 ` [PATCH v2 0/2] Two small 'git repack' fixes Ævar Arnfjörð Bjarmason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=211218.861r2axmk3.gmgdl@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=derrickstolee@github.com \
--cc=dstolee@microsoft.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=me@ttaylorr.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.