Clarify error message for hash mismatches (again)

This is arguably nitpicky, but I think this new formulation is even
clearer. My thinking is that it's easier to comprehend when the
calculated hash value is displayed close to the output path. (I think it
is somewhat similar to eliminating double negatives in logic
statements.)

The formulation is inspired / copied from the OpenEmbedded build tool,
bitbake.
This commit is contained in:
Bjørn Forsman 2015-12-08 19:14:59 +01:00
parent d1e3bf01bc
commit 65bd82d42a

View file

@ -2736,8 +2736,8 @@ void DerivationGoal::registerOutputs()
Hash h2 = recursive ? hashPath(ht, actualPath).first : hashFile(ht, actualPath);
if (h != h2)
throw BuildError(
format("Nix expects output path %1% to have %2% hash %3%, instead it has %4%")
% path % i.second.hashAlgo % printHash16or32(h) % printHash16or32(h2));
format("output path %1% has %2% hash %3% when %4% was expected")
% path % i.second.hashAlgo % printHash16or32(h2) % printHash16or32(h));
}
/* Get rid of all weird permissions. This also checks that