mirror of
https://github.com/git/git.git
synced 2024-12-03 23:14:23 +08:00
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:
commit
d33a433236
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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) {
|
||||
|
@ -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));
|
||||
|
15
progress.c
15
progress.c
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user