Преглед на файлове

Use vcs dir as git reference, if existing, to speed up download

Also added home dir to default initial settings
Luís Faceira преди 10 години
родител
ревизия
292bd3f6a3
променени са 2 файла, в които са добавени 4 реда и са изтрити 1 реда
  1. 1 0
      src/Composer/Config.php
  2. 3 1
      src/Composer/Downloader/GitDownloader.php

+ 1 - 0
src/Composer/Config.php

@@ -59,6 +59,7 @@ class Config
         'platform' => array(),
         'archive-format' => 'tar',
         'archive-dir' => '.',
+        'home' => '$HOME'
         // valid keys without defaults (auth config stuff):
         // bitbucket-oauth
         // github-oauth

+ 3 - 1
src/Composer/Downloader/GitDownloader.php

@@ -42,10 +42,12 @@ class GitDownloader extends VcsDownloader implements DvcsDownloaderInterface
     {
         GitUtil::cleanEnv();
         $path = $this->normalizePath($path);
+        $cachePath = $this->config->get('cache-vcs-dir').'/'.preg_replace('{[^a-z0-9.]}i', '-', $url).'/';
+        $cacheOptions = file_exists($cachePath) ? $cacheOptions = '--reference '.$cachePath.' ' : '';
 
         $ref = $package->getSourceReference();
         $flag = Platform::isWindows() ? '/D ' : '';
-        $command = 'git clone --no-checkout %s %s && cd '.$flag.'%2$s && git remote add composer %1$s && git fetch composer';
+        $command = 'git clone --no-checkout %s %s '.$cacheOptions.'&& cd '.$flag.'%2$s && git remote add composer %1$s && git fetch composer';
         $this->io->writeError("    Cloning ".$ref);
 
         $commandCallable = function ($url) use ($ref, $path, $command) {