mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-29 14:14:12 +01:00
lib: Report progress for combined upgrade operation
Previously, some parts of upgrade didn't report progress and for others it was possible for the progress meter to restart at 0 part way through the upgrade because each stage was reported separately. Fix this by computing the total amount of work that needs to be done up-front and updating completed work monotonically.
This commit is contained in:
parent
e0635bd003
commit
02fec226fc
1 changed files with 15 additions and 2 deletions
|
@ -1241,6 +1241,19 @@ notmuch_database_upgrade (notmuch_database_t *notmuch,
|
||||||
timer_is_active = TRUE;
|
timer_is_active = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Figure out how much total work we need to do. */
|
||||||
|
if (new_features &
|
||||||
|
(NOTMUCH_FEATURE_FILE_TERMS | NOTMUCH_FEATURE_BOOL_FOLDER)) {
|
||||||
|
notmuch_query_t *query = notmuch_query_create (notmuch, "");
|
||||||
|
total += notmuch_query_count_messages (query);
|
||||||
|
notmuch_query_destroy (query);
|
||||||
|
}
|
||||||
|
if (new_features & NOTMUCH_FEATURE_DIRECTORY_DOCS) {
|
||||||
|
t_end = db->allterms_end ("XTIMESTAMP");
|
||||||
|
for (t = db->allterms_begin ("XTIMESTAMP"); t != t_end; t++)
|
||||||
|
++total;
|
||||||
|
}
|
||||||
|
|
||||||
/* Perform the upgrade in a transaction. */
|
/* Perform the upgrade in a transaction. */
|
||||||
db->begin_transaction (true);
|
db->begin_transaction (true);
|
||||||
|
|
||||||
|
@ -1256,8 +1269,6 @@ notmuch_database_upgrade (notmuch_database_t *notmuch,
|
||||||
notmuch_message_t *message;
|
notmuch_message_t *message;
|
||||||
char *filename;
|
char *filename;
|
||||||
|
|
||||||
total = notmuch_query_count_messages (query);
|
|
||||||
|
|
||||||
for (messages = notmuch_query_search_messages (query);
|
for (messages = notmuch_query_search_messages (query);
|
||||||
notmuch_messages_valid (messages);
|
notmuch_messages_valid (messages);
|
||||||
notmuch_messages_move_to_next (messages))
|
notmuch_messages_move_to_next (messages))
|
||||||
|
@ -1340,6 +1351,8 @@ notmuch_database_upgrade (notmuch_database_t *notmuch,
|
||||||
|
|
||||||
db->delete_document (*p);
|
db->delete_document (*p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
++count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue