diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2016-12-08 21:38:58 +0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2016-12-08 21:38:58 +0100 |
commit | b30d1e7ada0a8fbaacc25e24e5e788d18bfe8d3c (patch) | |
tree | 235871d7e3b61c031ce2370ef1dbc7a0c576fa93 /src/libstore | |
parent | 88ef77226e0a395a0151297c295843d2e39f24d5 (diff) |
Don't delete .check directories of running builds
We need to keep them around for diffoscope.
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/build.cc | 4 | ||||
-rw-r--r-- | src/libstore/gc.cc | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 01a9d027b..c970fbdca 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -2687,7 +2687,7 @@ void DerivationGoal::registerOutputs() outputs to allow hard links between outputs. */ InodesSeen inodesSeen; - Path checkSuffix = "-check"; + Path checkSuffix = ".check"; bool runDiffHook = settings.get("run-diff-hook", false); bool keepPreviousRound = settings.keepFailed || runDiffHook; @@ -2962,7 +2962,7 @@ void DerivationGoal::registerOutputs() return; } - /* Remove the -check directories if we're done. FIXME: keep them + /* Remove the .check directories if we're done. FIXME: keep them if the result was not determistic? */ if (curRound == nrRounds) { for (auto & i : drv->outputs) { diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index ae03604fa..f8c4a0723 100644 --- a/src/libstore/gc.cc +++ b/src/libstore/gc.cc @@ -621,6 +621,11 @@ void LocalStore::tryToDelete(GCState & state, const Path & path) /* Don't delete .chroot directories for derivations that are currently being built. */ if (isActiveTempFile(state, path, ".chroot")) return; + + /* Don't delete .check directories for derivations that are + currently being built, because we may need to run + diff-hook. */ + if (isActiveTempFile(state, path, ".check")) return; } PathSet visited; |