Jordi Boggiano 8 лет назад
Родитель
Сommit
20c16f18f5

+ 3 - 1
src/Composer/Repository/Vcs/GitLabDriver.php

@@ -220,7 +220,9 @@ class GitLabDriver extends VcsDriver
         $encoded = '';
         for ($i = 0; isset($string[$i]); $i++) {
             $character = $string[$i];
-            if (!ctype_alnum($character)) $character = '%' . sprintf('%02X', ord($character));
+            if (!ctype_alnum($character) && !in_array($character, array('-', '_'), true)) {
+                $character = '%' . sprintf('%02X', ord($character));
+            }
             $encoded .= $character;
         }
         return $encoded;

+ 6 - 1
src/Composer/XdebugHandler.php

@@ -173,7 +173,12 @@ class XdebugHandler
             $content .= $data.PHP_EOL;
         }
 
-        $content .= PHP_EOL.'memory_limit='.ini_get('memory_limit').PHP_EOL;
+        $content .= 'memory_limit='.ini_get('memory_limit').PHP_EOL;
+
+        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+            // Work-around for PHP windows bug, see issue #6052
+            $content .= 'opcache.enable_cli=0'.PHP_EOL;
+        }
 
         return @file_put_contents($this->tmpIni, $content);
     }

+ 2 - 2
tests/Composer/Test/Repository/Vcs/GitLabDriverTest.php

@@ -290,8 +290,8 @@ JSON;
 
     public function testGitlabSubDirectory()
     {
-        $url = 'https://mycompany.com/gitlab/mygroup/myproject';
-        $apiUrl = 'https://mycompany.com/gitlab/api/v3/projects/mygroup%2Fmyproject';
+        $url = 'https://mycompany.com/gitlab/mygroup/my-pro.ject';
+        $apiUrl = 'https://mycompany.com/gitlab/api/v3/projects/mygroup%2Fmy-pro%2Eject';
 
         $driver  = new GitLabDriver(array('url' => $url), $this->io->reveal(), $this->config, $this->process->reveal(), $this->remoteFilesystem->reveal());
         $driver->initialize();