forked from lix-project/lix
* Set gc-keep-outputs' or
gc-keep-derivations' to false with
`--delete --ignore-liveness'.
This commit is contained in:
parent
2e4ef03aa3
commit
44f6e6de77
|
@ -564,6 +564,15 @@ void LocalStore::collectGarbage(const GCOptions & options, GCResults & results)
|
||||||
state.gcKeepOutputs = queryBoolSetting("gc-keep-outputs", false);
|
state.gcKeepOutputs = queryBoolSetting("gc-keep-outputs", false);
|
||||||
state.gcKeepDerivations = queryBoolSetting("gc-keep-derivations", true);
|
state.gcKeepDerivations = queryBoolSetting("gc-keep-derivations", true);
|
||||||
|
|
||||||
|
/* Using `--ignore-liveness' with `--delete' can have unintended
|
||||||
|
consequences if `gc-keep-outputs' or `gc-keep-derivations' are
|
||||||
|
true (the garbage collector will recurse into deleting the
|
||||||
|
outputs or derivers, respectively). So disable them. */
|
||||||
|
if (options.action == GCOptions::gcDeleteSpecific && options.ignoreLiveness) {
|
||||||
|
state.gcKeepOutputs = false;
|
||||||
|
state.gcKeepDerivations = false;
|
||||||
|
}
|
||||||
|
|
||||||
/* Acquire the global GC root. This prevents
|
/* Acquire the global GC root. This prevents
|
||||||
a) New roots from being added.
|
a) New roots from being added.
|
||||||
b) Processes from creating new temporary root files. */
|
b) Processes from creating new temporary root files. */
|
||||||
|
|
Loading…
Reference in a new issue