1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 16:51:15 +02:00

Some effort to minimize flake dependencies

For example, if the top-level flake depends on
"nixpkgs/release-19.03", and one of its dependencies depends on
"nixpkgs", then the latter will be mapped to "nixpkgs/release-19.03",
rather than whatever the default branch of "nixpkgs" is. Thus you get
only one "nixpkgs" dependency rather than two.

This currently only works in a breadth-first way, so the other way
around (i.e. if the top-level flake depends on "nixpkgs", and a
dependency depends on "nixpkgs/release-19.03") still results in two
"nixpkgs" dependencies.
This commit is contained in:
Eelco Dolstra 2019-09-18 23:59:45 +02:00
parent c67407172d
commit aeb7148afd
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
4 changed files with 94 additions and 26 deletions

View file

@ -255,6 +255,23 @@ FlakeRef FlakeRef::baseRef() const // Removes the ref and rev from a FlakeRef.
return result;
}
bool FlakeRef::contains(const FlakeRef & other) const
{
if (!(data == other.data))
return false;
if (ref && ref != other.ref)
return false;
if (rev && rev != other.rev)
return false;
if (subdir != other.subdir)
return false;
return true;
}
std::optional<FlakeRef> parseFlakeRef(
const std::string & uri, bool allowRelative)
{