diff --git a/src/Composer/Repository/ComposerRepository.php b/src/Composer/Repository/ComposerRepository.php index f704c23ea..be1fd469b 100644 --- a/src/Composer/Repository/ComposerRepository.php +++ b/src/Composer/Repository/ComposerRepository.php @@ -26,7 +26,8 @@ class ComposerRepository extends ArrayRepository public function __construct(array $config) { - if (!preg_match('{^https?://}', $config['url'])) { + if (!preg_match('{^\w+://}', $config['url'])) { + // assume http as the default protocol $config['url'] = 'http://'.$config['url']; } $config['url'] = rtrim($config['url'], '/'); diff --git a/src/Composer/Repository/Vcs/HgDriver.php b/src/Composer/Repository/Vcs/HgDriver.php index 29af3199b..23a4ebebc 100644 --- a/src/Composer/Repository/Vcs/HgDriver.php +++ b/src/Composer/Repository/Vcs/HgDriver.php @@ -180,8 +180,7 @@ class HgDriver implements VcsDriverInterface return false; } - exec(sprintf('hg identify %s', escapeshellarg($url)), $output); - - return (boolean)$output; + exec(sprintf('hg identify %s', escapeshellarg($url)), $ignored, $exit); + return $exit === 0; } } diff --git a/src/Composer/Repository/Vcs/SvnDriver.php b/src/Composer/Repository/Vcs/SvnDriver.php index a1574b6b8..c968dfab7 100644 --- a/src/Composer/Repository/Vcs/SvnDriver.php +++ b/src/Composer/Repository/Vcs/SvnDriver.php @@ -178,7 +178,7 @@ class SvnDriver implements VcsDriverInterface return false; } - exec(sprintf('svn info --non-interactive %s', escapeshellarg($url)), $output); - return preg_match('{^Repository UUID:}m', implode("\n", $output)) >= 1; + exec(sprintf('svn info --non-interactive %s 2>/dev/null', escapeshellarg($url)), $ignored, $exit); + return $exit === 0; } }