Skip to content

Commit

Permalink
Merge branch 'ds/commit-graph-delay-gen-progress'
Browse files Browse the repository at this point in the history
One kind of progress messages were always given during commit-graph
generation, instead of following the "if it takes more than two
seconds, show progress" pattern, which has been corrected.

* ds/commit-graph-delay-gen-progress:
  commit-graph: use start_delayed_progress()
  progress: create GIT_PROGRESS_DELAY
  • Loading branch information
gitster committed Dec 10, 2019
2 parents 5dd1d59 + ecc0869 commit 41dac79
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 8 deletions.
4 changes: 4 additions & 0 deletions Documentation/git.txt
Expand Up @@ -544,6 +544,10 @@ other
a pager. See also the `core.pager` option in
linkgit:git-config[1].

`GIT_PROGRESS_DELAY`::
A number controlling how many seconds to delay before showing
optional progress indicators. Defaults to 2.

`GIT_EDITOR`::
This environment variable overrides `$EDITOR` and `$VISUAL`.
It is used by several Git commands when, on interactive mode,
Expand Down
2 changes: 1 addition & 1 deletion commit-graph.c
Expand Up @@ -1100,7 +1100,7 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx)
struct commit_list *list = NULL;

if (ctx->report_progress)
ctx->progress = start_progress(
ctx->progress = start_delayed_progress(
_("Computing commit graph generation numbers"),
ctx->commits.nr);
for (i = 0; i < ctx->commits.nr; i++) {
Expand Down
15 changes: 13 additions & 2 deletions progress.c
Expand Up @@ -14,6 +14,7 @@
#include "strbuf.h"
#include "trace.h"
#include "utf8.h"
#include "config.h"

#define TP_IDX_MAX 8

Expand Down Expand Up @@ -267,9 +268,19 @@ static struct progress *start_progress_delay(const char *title, uint64_t total,
return progress;
}

static int get_default_delay(void)
{
static int delay_in_secs = -1;

if (delay_in_secs < 0)
delay_in_secs = git_env_ulong("GIT_PROGRESS_DELAY", 2);

return delay_in_secs;
}

struct progress *start_delayed_progress(const char *title, uint64_t total)
{
return start_progress_delay(title, total, 2, 0);
return start_progress_delay(title, total, get_default_delay(), 0);
}

struct progress *start_progress(const char *title, uint64_t total)
Expand All @@ -294,7 +305,7 @@ struct progress *start_sparse_progress(const char *title, uint64_t total)
struct progress *start_delayed_sparse_progress(const char *title,
uint64_t total)
{
return start_progress_delay(title, total, 2, 1);
return start_progress_delay(title, total, get_default_delay(), 1);
}

static void finish_if_sparse(struct progress *progress)
Expand Down
4 changes: 2 additions & 2 deletions t/t5318-commit-graph.sh
Expand Up @@ -132,7 +132,7 @@ test_expect_success 'commit-graph write progress off for redirected stderr' '

test_expect_success 'commit-graph write force progress on for stderr' '
cd "$TRASH_DIRECTORY/full" &&
git commit-graph write --progress 2>err &&
GIT_PROGRESS_DELAY=0 git commit-graph write --progress 2>err &&
test_file_not_empty err
'

Expand All @@ -150,7 +150,7 @@ test_expect_success 'commit-graph verify progress off for redirected stderr' '

test_expect_success 'commit-graph verify force progress on for stderr' '
cd "$TRASH_DIRECTORY/full" &&
git commit-graph verify --progress 2>err &&
GIT_PROGRESS_DELAY=0 git commit-graph verify --progress 2>err &&
test_file_not_empty err
'

Expand Down
6 changes: 3 additions & 3 deletions t/t6500-gc.sh
Expand Up @@ -103,14 +103,14 @@ test_expect_success 'auto gc with too many loose objects does not attempt to cre
'

test_expect_success 'gc --no-quiet' '
git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr &&
GIT_PROGRESS_DELAY=0 git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr &&
test_must_be_empty stdout &&
test_line_count = 1 stderr &&
test_i18ngrep "Computing commit graph generation numbers" stderr
'

test_expect_success TTY 'with TTY: gc --no-quiet' '
test_terminal git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr &&
test_terminal env GIT_PROGRESS_DELAY=0 \
git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr &&
test_must_be_empty stdout &&
test_i18ngrep "Enumerating objects" stderr &&
test_i18ngrep "Computing commit graph generation numbers" stderr
Expand Down

0 comments on commit 41dac79

Please sign in to comment.