Update to locked source-ref when receiving a new lock file, fixes #358
parent
ceac0ca75b
commit
b2609e8413
|
@ -216,8 +216,8 @@ class Installer
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// force dev packages to be updated to latest reference on update
|
// force dev packages to be updated if we update or install from a (potentially new) lock
|
||||||
if ($this->update) {
|
if ($this->update || $installFromLock) {
|
||||||
foreach ($localRepo->getPackages() as $package) {
|
foreach ($localRepo->getPackages() as $package) {
|
||||||
// skip non-dev packages
|
// skip non-dev packages
|
||||||
if (!$package->isDev()) {
|
if (!$package->isDev()) {
|
||||||
|
@ -233,11 +233,27 @@ class Installer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// force update
|
// force update to latest on update
|
||||||
|
if ($this->update) {
|
||||||
$newPackage = $this->repositoryManager->findPackage($package->getName(), $package->getVersion());
|
$newPackage = $this->repositoryManager->findPackage($package->getName(), $package->getVersion());
|
||||||
if ($newPackage && $newPackage->getSourceReference() !== $package->getSourceReference()) {
|
if ($newPackage && $newPackage->getSourceReference() !== $package->getSourceReference()) {
|
||||||
$operations[] = new UpdateOperation($package, $newPackage);
|
$operations[] = new UpdateOperation($package, $newPackage);
|
||||||
}
|
}
|
||||||
|
} elseif ($installFromLock) {
|
||||||
|
// force update to locked version if it does not match the installed version
|
||||||
|
$lockData = $this->locker->getLockData();
|
||||||
|
unset($lockedReference);
|
||||||
|
foreach ($lockData['packages'] as $lockedPackage) {
|
||||||
|
if (!empty($lockedPackage['source-reference']) && strtolower($lockedPackage['package']) === $package->getName()) {
|
||||||
|
$lockedReference = $lockedPackage['source-reference'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isset($lockedReference) && $lockedReference !== $package->getSourceReference()) {
|
||||||
|
// changing the source ref to update to will be handled in the operations loop below
|
||||||
|
$operations[] = new UpdateOperation($package, $package);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue