mirror of
https://github.com/NixOS/nix
synced 2025-07-06 21:41:48 +02:00
* Get derivation outputs from the database instead of the .drv file,
which requires more I/O.
This commit is contained in:
parent
103cfee056
commit
c4d388add4
7 changed files with 46 additions and 8 deletions
|
@ -467,10 +467,10 @@ bool LocalStore::tryToDelete(GCState & state, const Path & path)
|
|||
then don't delete the derivation if any of the outputs are
|
||||
live. */
|
||||
if (state.gcKeepDerivations && isDerivation(path)) {
|
||||
Derivation drv = derivationFromPath(path);
|
||||
foreach (DerivationOutputs::iterator, i, drv.outputs)
|
||||
if (!tryToDelete(state, i->second.path)) {
|
||||
printMsg(lvlDebug, format("cannot delete derivation `%1%' because its output is alive") % path);
|
||||
PathSet outputs = queryDerivationOutputs(path);
|
||||
foreach (PathSet::iterator, i, outputs)
|
||||
if (!tryToDelete(state, *i)) {
|
||||
printMsg(lvlDebug, format("cannot delete derivation `%1%' because its output `%2%' is alive") % path % *i);
|
||||
goto isLive;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue