diff options
author | regnat <rg@regnat.ovh> | 2021-06-22 10:46:29 +0200 |
---|---|---|
committer | regnat <rg@regnat.ovh> | 2021-06-23 11:27:16 +0200 |
commit | 16fb7d8d95a8bc81e7df885ab4167c8a03f1dddf (patch) | |
tree | c1acfb569f858257085897a4b5f68d27a97dea63 /src | |
parent | 40f925b2dacb481b62d325fb41641804524a5dc8 (diff) |
Display the diverging paths in case of a realisation mismatch
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/build/drv-output-substitution-goal.cc | 9 | ||||
-rw-r--r-- | src/libstore/local-store.cc | 9 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/libstore/build/drv-output-substitution-goal.cc b/src/libstore/build/drv-output-substitution-goal.cc index ec3a8d758..be270d079 100644 --- a/src/libstore/build/drv-output-substitution-goal.cc +++ b/src/libstore/build/drv-output-substitution-goal.cc @@ -65,9 +65,14 @@ void DrvOutputSubstitutionGoal::tryNext() if (auto localOutputInfo = worker.store.queryRealisation(depId); localOutputInfo && localOutputInfo->outPath != depPath) { warn( - "substituter '%s' has an incompatible realisation for '%s', ignoring", + "substituter '%s' has an incompatible realisation for '%s', ignoring.\n" + "Local: %s\n" + "Remote: %s", sub->getUri(), - depId.to_string()); + depId.to_string(), + worker.store.printStorePath(localOutputInfo->outPath), + worker.store.printStorePath(depPath) + ); tryNext(); return; } diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 064f7a432..d7c7f8e1d 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -732,8 +732,13 @@ void LocalStore::registerDrvOutput(const Realisation & info) .exec(); } else { throw Error("Trying to register a realisation of '%s', but we already " - "have another one locally", - info.id.to_string()); + "have another one locally.\n" + "Local: %s\n" + "Remote: %s", + info.id.to_string(), + printStorePath(oldR->outPath), + printStorePath(info.outPath) + ); } } else { state->stmts->RegisterRealisedOutput.use() |