aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorregnat <rg@regnat.ovh>2021-06-22 10:46:29 +0200
committerregnat <rg@regnat.ovh>2021-06-23 11:27:16 +0200
commit16fb7d8d95a8bc81e7df885ab4167c8a03f1dddf (patch)
treec1acfb569f858257085897a4b5f68d27a97dea63 /src
parent40f925b2dacb481b62d325fb41641804524a5dc8 (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.cc9
-rw-r--r--src/libstore/local-store.cc9
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()