diff options
author | Matheus Tavares <matheus.bernardino@usp.br> | 2021-08-26 16:10:06 -0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-08-26 23:15:33 -0700 |
commit | 7a132c628e57b9bceeb88832ea051395c0637b16 (patch) | |
tree | 4091c7cac1642aebc146a47af1b3894da10c7b75 /entry.c | |
parent | 225bc32a989d7a22fa6addafd4ce7dcd04675dbf (diff) |
checkout: make delayed checkout respect --quiet and --no-progress
The 'Filtering contents...' progress report from delayed checkout is displayed even when checkout and clone are invoked with --quiet or --no-progress. Furthermore, it is displayed unconditionally, without first checking whether stdout is a tty. Let's fix these issues and also add some regression tests for the two code paths that currently use delayed checkout: unpack_trees.c:check_updates() and builtin/checkout.c:checkout_worktree(). Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'entry.c')
-rw-r--r-- | entry.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/entry.c b/entry.c index 125fabdbd5..044e8ec92c 100644 --- a/entry.c +++ b/entry.c @@ -159,7 +159,8 @@ static int remove_available_paths(struct string_list_item *item, void *cb_data) return !available; } -int finish_delayed_checkout(struct checkout *state, int *nr_checkouts) +int finish_delayed_checkout(struct checkout *state, int *nr_checkouts, + int show_progress) { int errs = 0; unsigned delayed_object_count; @@ -173,7 +174,9 @@ int finish_delayed_checkout(struct checkout *state, int *nr_checkouts) dco->state = CE_RETRY; delayed_object_count = dco->paths.nr; - progress = start_delayed_progress(_("Filtering content"), delayed_object_count); + progress = show_progress + ? start_delayed_progress(_("Filtering content"), delayed_object_count) + : NULL; while (dco->filters.nr > 0) { for_each_string_list_item(filter, &dco->filters) { struct string_list available_paths = STRING_LIST_INIT_NODUP; |