When repairing a derivation, check and repair the entire output closure

If we find a corrupted path in the output closure, we rebuild the
derivation that produced that particular path.
This commit is contained in:
Eelco Dolstra 2012-10-03 10:38:09 -04:00
parent 2001895f3d
commit a3f205b249
3 changed files with 91 additions and 6 deletions

View file

@ -206,6 +206,8 @@ public:
contents. */
bool pathContentsGood(const Path & path);
void markContentsGood(const Path & path);
private:
Path schemaPath;
@ -233,6 +235,9 @@ private:
SQLiteStmt stmtQueryDerivationOutputs;
SQLiteStmt stmtQueryPathFromHashPart;
/* Cache for pathContentsGood(). */
std::map<Path, bool> pathContentsGoodCache;
int getSchema();
void openDB(bool create);