Merge branch 'jc/simplify-progress'

The API to start showing progress meter after a short delay has
been simplified.

* jc/simplify-progress:
  progress: simplify "delayed" progress API
This commit is contained in:
Junio C Hamano 2017-08-24 10:20:02 -07:00
commit d33a433236
10 changed files with 20 additions and 19 deletions

View File

@ -925,8 +925,7 @@ parse_done:
sb.found_guilty_entry = &found_guilty_entry;
sb.found_guilty_entry_data = π
if (show_progress)
pi.progress = start_progress_delay(_("Blaming lines"),
sb.num_lines, 50, 1);
pi.progress = start_delayed_progress(_("Blaming lines"), sb.num_lines);
assign_blame(&sb, opt);

View File

@ -179,7 +179,7 @@ static int traverse_reachable(void)
unsigned int nr = 0;
int result = 0;
if (show_progress)
progress = start_progress_delay(_("Checking connectivity"), 0, 0, 2);
progress = start_delayed_progress(_("Checking connectivity"), 0);
while (pending.nr) {
struct object_array_entry *entry;
struct object *obj;

View File

@ -1759,7 +1759,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
rev.add_signoff = do_signoff;
if (show_progress)
progress = start_progress_delay(_("Generating patches"), total, 0, 2);
progress = start_delayed_progress(_("Generating patches"), total);
while (0 <= --nr) {
int shown;
display_progress(progress, total - nr);

View File

@ -37,8 +37,7 @@ static int prune_object(const struct object_id *oid, const char *path,
void prune_packed_objects(int opts)
{
if (opts & PRUNE_PACKED_VERBOSE)
progress = start_progress_delay(_("Removing duplicate objects"),
256, 95, 2);
progress = start_delayed_progress(_("Removing duplicate objects"), 256);
for_each_loose_file_in_objdir(get_object_directory(),
prune_object, NULL, prune_subdir, &opts);

View File

@ -138,7 +138,7 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
if (show_progress == -1)
show_progress = isatty(2);
if (show_progress)
progress = start_progress_delay(_("Checking connectivity"), 0, 0, 2);
progress = start_delayed_progress(_("Checking connectivity"), 0);
mark_reachable_objects(&revs, 1, expire, progress);
stop_progress(&progress);

View File

@ -367,7 +367,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
revs.limited = 1;
if (show_progress)
progress = start_progress_delay(show_progress, 0, 0, 2);
progress = start_delayed_progress(show_progress, 0);
if (use_bitmap_index && !revs.prune) {
if (revs.count && !revs.left_right && !revs.cherry_mark) {

View File

@ -532,9 +532,9 @@ void diffcore_rename(struct diff_options *options)
}
if (options->show_rename_progress) {
progress = start_progress_delay(
progress = start_delayed_progress(
_("Performing inexact rename detection"),
rename_dst_nr * rename_src_nr, 50, 1);
rename_dst_nr * rename_src_nr);
}
mx = xcalloc(st_mult(NUM_CANDIDATE_PER_DST, num_create), sizeof(*mx));

View File

@ -34,7 +34,7 @@ struct progress {
unsigned total;
unsigned last_percent;
unsigned delay;
unsigned delayed_percent_treshold;
unsigned delayed_percent_threshold;
struct throughput *throughput;
uint64_t start_ns;
};
@ -88,7 +88,7 @@ static int display(struct progress *progress, unsigned n, const char *done)
return 0;
if (progress->total) {
unsigned percent = n * 100 / progress->total;
if (percent > progress->delayed_percent_treshold) {
if (percent > progress->delayed_percent_threshold) {
/* inhibit this progress report entirely */
clear_progress_signal();
progress->delay = -1;
@ -205,8 +205,8 @@ int display_progress(struct progress *progress, unsigned n)
return progress ? display(progress, n, NULL) : 0;
}
struct progress *start_progress_delay(const char *title, unsigned total,
unsigned percent_treshold, unsigned delay)
static struct progress *start_progress_delay(const char *title, unsigned total,
unsigned percent_threshold, unsigned delay)
{
struct progress *progress = malloc(sizeof(*progress));
if (!progress) {
@ -219,7 +219,7 @@ struct progress *start_progress_delay(const char *title, unsigned total,
progress->total = total;
progress->last_value = -1;
progress->last_percent = -1;
progress->delayed_percent_treshold = percent_treshold;
progress->delayed_percent_threshold = percent_threshold;
progress->delay = delay;
progress->throughput = NULL;
progress->start_ns = getnanotime();
@ -227,6 +227,11 @@ struct progress *start_progress_delay(const char *title, unsigned total,
return progress;
}
struct progress *start_delayed_progress(const char *title, unsigned total)
{
return start_progress_delay(title, total, 0, 2);
}
struct progress *start_progress(const char *title, unsigned total)
{
return start_progress_delay(title, total, 0, 0);

View File

@ -6,8 +6,7 @@ struct progress;
void display_throughput(struct progress *progress, off_t total);
int display_progress(struct progress *progress, unsigned n);
struct progress *start_progress(const char *title, unsigned total);
struct progress *start_progress_delay(const char *title, unsigned total,
unsigned percent_treshold, unsigned delay);
struct progress *start_delayed_progress(const char *title, unsigned total);
void stop_progress(struct progress **progress);
void stop_progress_msg(struct progress **progress, const char *msg);

View File

@ -343,8 +343,7 @@ static struct progress *get_progress(struct unpack_trees_options *o)
total++;
}
return start_progress_delay(_("Checking out files"),
total, 50, 1);
return start_delayed_progress(_("Checking out files"), total);
}
static int check_updates(struct unpack_trees_options *o)