mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 08:16:15 +02:00
Tarball fetcher: Include revCount/lastModified in the fingerprint
This can influence the evaluation result so they should be included in the fingerprint.
This commit is contained in:
parent
1ff186fc6e
commit
5b4102c3b2
2 changed files with 12 additions and 2 deletions
|
@ -950,10 +950,20 @@ std::optional<Fingerprint> LockedFlake::getFingerprint(ref<Store> store) const
|
||||||
auto fingerprint = flake.lockedRef.input.getFingerprint(store);
|
auto fingerprint = flake.lockedRef.input.getFingerprint(store);
|
||||||
if (!fingerprint) return std::nullopt;
|
if (!fingerprint) return std::nullopt;
|
||||||
|
|
||||||
|
*fingerprint += fmt(";%s;%s", flake.lockedRef.subdir, lockFile);
|
||||||
|
|
||||||
|
/* Include revCount and lastModified because they're not
|
||||||
|
necessarily implied by the content fingerprint (e.g. for
|
||||||
|
tarball flakes) but can influence the evaluation result. */
|
||||||
|
if (auto revCount = flake.lockedRef.input.getRevCount())
|
||||||
|
*fingerprint += fmt(";revCount=%d", *revCount);
|
||||||
|
if (auto lastModified = flake.lockedRef.input.getLastModified())
|
||||||
|
*fingerprint += fmt(";lastModified=%d", *lastModified);
|
||||||
|
|
||||||
// FIXME: as an optimization, if the flake contains a lock file
|
// FIXME: as an optimization, if the flake contains a lock file
|
||||||
// and we haven't changed it, then it's sufficient to use
|
// and we haven't changed it, then it's sufficient to use
|
||||||
// flake.sourceInfo.storePath for the fingerprint.
|
// flake.sourceInfo.storePath for the fingerprint.
|
||||||
return hashString(HashAlgorithm::SHA256, fmt("%s;%s;%s", *fingerprint, flake.lockedRef.subdir, lockFile));
|
return hashString(HashAlgorithm::SHA256, *fingerprint);
|
||||||
}
|
}
|
||||||
|
|
||||||
Flake::~Flake() { }
|
Flake::~Flake() { }
|
||||||
|
|
Loading…
Reference in a new issue