Make nix copy work without the ca-derivations flag

The experimental feature was by mistake required for `nix copy` to work
at oll
This commit is contained in:
regnat 2021-02-25 16:58:27 +01:00
parent c182aac98a
commit c43f446f4e

View file

@ -786,14 +786,15 @@ void copyStorePath(ref<Store> srcStore, ref<Store> dstStore,
std::map<StorePath, StorePath> copyPaths(ref<Store> srcStore, ref<Store> dstStore, const RealisedPath::Set & paths, std::map<StorePath, StorePath> copyPaths(ref<Store> srcStore, ref<Store> dstStore, const RealisedPath::Set & paths,
RepairFlag repair, CheckSigsFlag checkSigs, SubstituteFlag substitute) RepairFlag repair, CheckSigsFlag checkSigs, SubstituteFlag substitute)
{ {
settings.requireExperimentalFeature("ca-derivations");
StorePathSet storePaths; StorePathSet storePaths;
std::set<Realisation> realisations; std::set<Realisation> realisations;
for (auto & path : paths) { for (auto & path : paths) {
storePaths.insert(path.path()); storePaths.insert(path.path());
if (auto realisation = std::get_if<Realisation>(&path.raw)) if (auto realisation = std::get_if<Realisation>(&path.raw)) {
settings.requireExperimentalFeature("ca-derivations");
realisations.insert(*realisation); realisations.insert(*realisation);
} }
}
auto pathsMap = copyPaths(srcStore, dstStore, storePaths, repair, checkSigs, substitute); auto pathsMap = copyPaths(srcStore, dstStore, storePaths, repair, checkSigs, substitute);
try { try {
for (auto & realisation : realisations) { for (auto & realisation : realisations) {