summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2019-12-10 13:11:43 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-12-10 13:11:43 -0800
commit41dac79c2f49f9ea1c808f0f208bde9aa4ed91cb (patch)
tree0613e1a536b7af6ed7bf9d108ae3d7ea25976154
parentMerge branch 'jt/clone-recursesub-ref-advise' (diff)
parentcommit-graph: use start_delayed_progress() (diff)
downloadtgif-41dac79c2f49f9ea1c808f0f208bde9aa4ed91cb.tar.xz
Merge branch 'ds/commit-graph-delay-gen-progress'
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
-rw-r--r--Documentation/git.txt4
-rw-r--r--commit-graph.c2
-rw-r--r--progress.c15
-rwxr-xr-xt/t5318-commit-graph.sh4
-rwxr-xr-xt/t6500-gc.sh6
5 files changed, 23 insertions, 8 deletions
diff --git a/Documentation/git.txt b/Documentation/git.txt
index f297883213..b1597ac002 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -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,
diff --git a/commit-graph.c b/commit-graph.c
index 79bc5641cb..e771394aff 100644
--- a/commit-graph.c
+++ b/commit-graph.c
@@ -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++) {
diff --git a/progress.c b/progress.c
index 0063559aab..19805ac646 100644
--- a/progress.c
+++ b/progress.c
@@ -14,6 +14,7 @@
#include "strbuf.h"
#include "trace.h"
#include "utf8.h"
+#include "config.h"
#define TP_IDX_MAX 8
@@ -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)
@@ -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)
diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh
index 5a3e4e331a..3f03de6018 100755
--- a/t/t5318-commit-graph.sh
+++ b/t/t5318-commit-graph.sh
@@ -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
'
@@ -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
'
diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh
index c0f04dc6b0..0a69a67117 100755
--- a/t/t6500-gc.sh
+++ b/t/t6500-gc.sh
@@ -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