Merge branch 'ab/progress-users-adjust-counters'
The code to show progress indicator in a few code paths did not cover between 0-100%, which has been corrected. * ab/progress-users-adjust-counters: entry: show finer-grained counter in "Filtering content" progress line commit-graph: fix bogus counter in "Scanning merged commits" progress line
This commit is contained in:
@ -2125,7 +2125,7 @@ static void sort_and_scan_merged_commits(struct write_commit_graph_context *ctx)
|
|||||||
|
|
||||||
ctx->num_extra_edges = 0;
|
ctx->num_extra_edges = 0;
|
||||||
for (i = 0; i < ctx->commits.nr; i++) {
|
for (i = 0; i < ctx->commits.nr; i++) {
|
||||||
display_progress(ctx->progress, i);
|
display_progress(ctx->progress, i + 1);
|
||||||
|
|
||||||
if (i && oideq(&ctx->commits.list[i - 1]->object.oid,
|
if (i && oideq(&ctx->commits.list[i - 1]->object.oid,
|
||||||
&ctx->commits.list[i]->object.oid)) {
|
&ctx->commits.list[i]->object.oid)) {
|
||||||
|
12
entry.c
12
entry.c
@ -163,24 +163,21 @@ int finish_delayed_checkout(struct checkout *state, int *nr_checkouts,
|
|||||||
int show_progress)
|
int show_progress)
|
||||||
{
|
{
|
||||||
int errs = 0;
|
int errs = 0;
|
||||||
unsigned delayed_object_count;
|
unsigned processed_paths = 0;
|
||||||
off_t filtered_bytes = 0;
|
off_t filtered_bytes = 0;
|
||||||
struct string_list_item *filter, *path;
|
struct string_list_item *filter, *path;
|
||||||
struct progress *progress;
|
struct progress *progress = NULL;
|
||||||
struct delayed_checkout *dco = state->delayed_checkout;
|
struct delayed_checkout *dco = state->delayed_checkout;
|
||||||
|
|
||||||
if (!state->delayed_checkout)
|
if (!state->delayed_checkout)
|
||||||
return errs;
|
return errs;
|
||||||
|
|
||||||
dco->state = CE_RETRY;
|
dco->state = CE_RETRY;
|
||||||
delayed_object_count = dco->paths.nr;
|
if (show_progress)
|
||||||
progress = show_progress
|
progress = start_delayed_progress(_("Filtering content"), dco->paths.nr);
|
||||||
? start_delayed_progress(_("Filtering content"), delayed_object_count)
|
|
||||||
: NULL;
|
|
||||||
while (dco->filters.nr > 0) {
|
while (dco->filters.nr > 0) {
|
||||||
for_each_string_list_item(filter, &dco->filters) {
|
for_each_string_list_item(filter, &dco->filters) {
|
||||||
struct string_list available_paths = STRING_LIST_INIT_NODUP;
|
struct string_list available_paths = STRING_LIST_INIT_NODUP;
|
||||||
display_progress(progress, delayed_object_count - dco->paths.nr);
|
|
||||||
|
|
||||||
if (!async_query_available_blobs(filter->string, &available_paths)) {
|
if (!async_query_available_blobs(filter->string, &available_paths)) {
|
||||||
/* Filter reported an error */
|
/* Filter reported an error */
|
||||||
@ -227,6 +224,7 @@ int finish_delayed_checkout(struct checkout *state, int *nr_checkouts,
|
|||||||
ce = index_file_exists(state->istate, path->string,
|
ce = index_file_exists(state->istate, path->string,
|
||||||
strlen(path->string), 0);
|
strlen(path->string), 0);
|
||||||
if (ce) {
|
if (ce) {
|
||||||
|
display_progress(progress, ++processed_paths);
|
||||||
errs |= checkout_entry(ce, state, NULL, nr_checkouts);
|
errs |= checkout_entry(ce, state, NULL, nr_checkouts);
|
||||||
filtered_bytes += ce->ce_stat_data.sd_size;
|
filtered_bytes += ce->ce_stat_data.sd_size;
|
||||||
display_throughput(progress, filtered_bytes);
|
display_throughput(progress, filtered_bytes);
|
||||||
|
Reference in New Issue
Block a user