From 6489487245c2ca7b001031b783c72abb209cdc2f Mon Sep 17 00:00:00 2001 From: Mateusz Heleniak Date: Fri, 31 Aug 2012 23:27:36 +0200 Subject: [PATCH] compare references when using dists --- src/Composer/Installer.php | 7 ++++++- src/Composer/Package/Locker.php | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php index a75a59bb9..5de297f99 100644 --- a/src/Composer/Installer.php +++ b/src/Composer/Installer.php @@ -388,7 +388,12 @@ class Installer break; } } - if (isset($lockedReference) && $lockedReference !== $package->getSourceReference()) { + $sourceReference = $package->getSourceReference() ?: $package->getDistReference(); + if (isset($lockedReference) && $lockedReference !== $sourceReference) { + if (!$package->getSourceType() && $package->getDistType()) { + throw new \RuntimeException(sprintf('Dist reference (%s) does not match locked reference (%s)', $sourceReference, $lockedReference)); + } + // changing the source ref to update to will be handled in the operations loop below $operations[] = new UpdateOperation($package, clone $package); } diff --git a/src/Composer/Package/Locker.php b/src/Composer/Package/Locker.php index 9b3d2cd25..967af370e 100644 --- a/src/Composer/Package/Locker.php +++ b/src/Composer/Package/Locker.php @@ -232,7 +232,7 @@ class Locker $spec = array('package' => $name, 'version' => $version); if ($package->isDev() && !$alias) { - $spec['source-reference'] = $package->getSourceReference(); + $spec['source-reference'] = $package->getSourceReference() ?: $package->getDistReference(); if ('git' === $package->getSourceType() && $path = $this->installationManager->getInstallPath($package)) { $process = new ProcessExecutor(); if (0 === $process->execute('git log -n1 --pretty=%ct '.escapeshellarg($package->getSourceReference()), $output, $path)) {