summaryrefslogtreecommitdiff
path: root/progress.c
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2019-11-25 21:28:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-11-27 01:57:10 (GMT)
commit44a4693bfcec1876b29cdaec3625819d80ea1280 (patch)
treecdfa2be639efb37f30f35351adf4f397ec12eee6 /progress.c
parentd9f6f3b6195a0ca35642561e530798ad1469bd41 (diff)
downloadgit-44a4693bfcec1876b29cdaec3625819d80ea1280.zip
git-44a4693bfcec1876b29cdaec3625819d80ea1280.tar.gz
git-44a4693bfcec1876b29cdaec3625819d80ea1280.tar.bz2
progress: create GIT_PROGRESS_DELAY
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>
Diffstat (limited to 'progress.c')
-rw-r--r--progress.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/progress.c b/progress.c
index 0063559..19805ac 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)