Browse Source

Avoid setting the update whitelist in require command on newly created files and when the lock file is disabled

Jordi Boggiano 5 years ago
parent
commit
257d2ce889
1 changed files with 6 additions and 1 deletions
  1. 6 1
      src/Composer/Command/RequireCommand.php

+ 6 - 1
src/Composer/Command/RequireCommand.php

@@ -236,7 +236,6 @@ EOT
             ->setClassMapAuthoritative($authoritative)
             ->setApcuAutoloader($apcu)
             ->setUpdate(true)
-            ->setUpdateWhitelist(array_keys($requirements))
             ->setWhitelistTransitiveDependencies($input->getOption('update-with-dependencies'))
             ->setWhitelistAllDependencies($input->getOption('update-with-all-dependencies'))
             ->setIgnorePlatformRequirements($input->getOption('ignore-platform-reqs'))
@@ -244,6 +243,12 @@ EOT
             ->setPreferLowest($input->getOption('prefer-lowest'))
         ;
 
+        // if no lock is present, or the file is brand new, we do not do a
+        // partial update as this is not supported by the Installer
+        if (!$this->newlyCreated && $composer->getConfig()->get('lock')) {
+            $install->setUpdateWhitelist(array_keys($requirements));
+        }
+
         $status = $install->run();
         if ($status !== 0) {
             $this->revertComposerFile(false);