]> git.ipfire.org Git - thirdparty/git.git/commitdiff
progress: create GIT_PROGRESS_DELAY
authorDerrick Stolee <dstolee@microsoft.com>
Mon, 25 Nov 2019 21:28:22 +0000 (21:28 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 27 Nov 2019 01:57:10 +0000 (10:57 +0900)
The start_delayed_progress() method is a preferred way to show
optional progress to users as it ignores steps that take less
than two seconds. However, this makes testing unreliable as tests
expect to be very fast.

In addition, users may want to decrease or increase this time
interval depending on their preferences for terminal noise.

Create the GIT_PROGRESS_DELAY environment variable to control
the delay set during start_delayed_progress(). Set the value
in some tests to guarantee their output remains consistent.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git.txt
progress.c
t/t5318-commit-graph.sh
t/t6500-gc.sh

index 9b82564d1aa9c04c4b0299c1a82c4ba45a2c3415..1c420da20892ef8cd9e980f6e3cca6e374df73d2 100644 (file)
@@ -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,
index 0063559aab6e233abd0a69aef6cead9d01e39948..19805ac6461ba3b1300e542989189f76738c1407 100644 (file)
@@ -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)
index d42b3efe39183627aaeb3eef461e6593dd762e4a..0824857e1f4abbfa171a2b14eaf5e13936663cb7 100755 (executable)
@@ -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
 '
 
index c0f04dc6b0e149173691e13c0194ffbd53be6ef8..7f79eedd1c1391a8424c53796f5d9cf53d763922 100755 (executable)
@@ -103,9 +103,8 @@ 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
 '