diff --git a/composer.lock b/composer.lock
index 768b822b5..690aca23e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -187,16 +187,16 @@
},
{
"name": "composer/xdebug-handler",
- "version": "1.1.0",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
- "reference": "c919dc6c62e221fc6406f861ea13433c0aa24f08"
+ "reference": "e1809da56ce1bd1b547a752936817341ac244d8e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/c919dc6c62e221fc6406f861ea13433c0aa24f08",
- "reference": "c919dc6c62e221fc6406f861ea13433c0aa24f08",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/e1809da56ce1bd1b547a752936817341ac244d8e",
+ "reference": "e1809da56ce1bd1b547a752936817341ac244d8e",
"shasum": ""
},
"require": {
@@ -227,7 +227,7 @@
"Xdebug",
"performance"
],
- "time": "2018-04-11T15:42:36+00:00"
+ "time": "2018-08-16T10:54:23+00:00"
},
{
"name": "justinrainbow/json-schema",
diff --git a/src/Composer/Command/CreateProjectCommand.php b/src/Composer/Command/CreateProjectCommand.php
index a7cc6650b..cca5f1871 100644
--- a/src/Composer/Command/CreateProjectCommand.php
+++ b/src/Composer/Command/CreateProjectCommand.php
@@ -345,10 +345,6 @@ EOT
$package = $package->getAliasOf();
}
- if (0 === strpos($package->getPrettyVersion(), 'dev-') && in_array($package->getSourceType(), array('git', 'hg'))) {
- $package->setSourceReference(substr($package->getPrettyVersion(), 4));
- }
-
$dm = $this->createDownloadManager($io, $config);
$dm->setPreferSource($preferSource)
->setPreferDist($preferDist)
diff --git a/src/Composer/Command/GlobalCommand.php b/src/Composer/Command/GlobalCommand.php
index 9e87c7e17..e13b8aaf2 100644
--- a/src/Composer/Command/GlobalCommand.php
+++ b/src/Composer/Command/GlobalCommand.php
@@ -13,6 +13,7 @@
namespace Composer\Command;
use Composer\Factory;
+use Composer\Util\Filesystem;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\StringInput;
@@ -75,8 +76,22 @@ EOT
// change to global dir
$config = Factory::createConfig();
- chdir($config->get('home'));
- $this->getIO()->writeError('Changed current directory to '.$config->get('home').'');
+ $home = $config->get('home');
+
+ if (!is_dir($home)) {
+ $fs = new Filesystem();
+ $fs->ensureDirectoryExists($home);
+ if (!is_dir($home)) {
+ throw new \RuntimeException('Could not create home directory');
+ }
+ }
+
+ try {
+ chdir($home);
+ } catch (\Exception $e) {
+ throw new \RuntimeException('Could not switch to home directory "'.$home.'"', 0, $e);
+ }
+ $this->getIO()->writeError('Changed current directory to '.$home.'');
// create new input without "global" command prefix
$input = new StringInput(preg_replace('{\bg(?:l(?:o(?:b(?:a(?:l)?)?)?)?)?\b}', '', $input->__toString(), 1));