daemon: Fix the displayed GC estimated progress.

* nix/libstore/gc.cc (LocalStore::deletePathRecursive): Fix computation
of 'fraction'.  Take 'bytesInvalidated' into account.
This commit is contained in:
Ludovic Courtès 2020-01-11 22:11:16 +01:00
parent 7033c7692c
commit be0fb348b8
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5

View File

@ -426,13 +426,14 @@ void LocalStore::deletePathRecursive(GCState & state, const Path & path)
}
if (state.options.maxFreed != ULLONG_MAX) {
double fraction = state.results.bytesFreed + size
/ state.options.maxFreed;
auto freed = state.results.bytesFreed + state.bytesInvalidated;
double fraction = ((double) freed) / (double) state.options.maxFreed;
unsigned int percentage = (fraction > 1. ? 1. : fraction) * 100.;
printMsg(lvlInfo, format("[%1%%%] deleting '%2%'") % percentage % path);
} else {
size_t total = (state.results.bytesFreed + size) / (1024 * 1024);
printMsg(lvlInfo, format("[%1% MiB] deleting '%2%'") % total % path);
auto freed = state.results.bytesFreed + state.bytesInvalidated;
freed /= 1024ULL * 1024ULL;
printMsg(lvlInfo, format("[%1% MiB] deleting '%2%'") % freed % path);
}
state.results.paths.insert(path);