1
0
Fork 0

Merge pull request #150 from webfactory/hg-fix

Mercurial fixes
pull/163/head
Jordi Boggiano 2011-12-14 05:47:57 -08:00
commit b947420cae
5 changed files with 17 additions and 16 deletions

View File

@ -38,7 +38,7 @@ class HgDownloader implements DownloaderInterface
$url = escapeshellarg($package->getSourceUrl());
$ref = escapeshellarg($package->getSourceReference());
system(sprintf('hg clone %s %s && cd %2$s && hg up %s', $url, $path, $ref));
system(sprintf('(hg clone %s %s 2> /dev/null) && cd %2$s && hg up %s', $url, $path, $ref));
}
/**

View File

@ -34,7 +34,7 @@ class VersionParser
{
$version = trim($version);
if (preg_match('{^(?:master|trunk)(?:[.-]?dev)?$}i', $version)) {
if (preg_match('{^(?:master|trunk|default)(?:[.-]?dev)?$}i', $version)) {
return '9999999-dev';
}
@ -85,7 +85,7 @@ class VersionParser
{
$name = trim($name);
if (in_array($name, array('master', 'trunk'))) {
if (in_array($name, array('master', 'trunk', 'default'))) {
return $this->normalize($name);
}

View File

@ -118,7 +118,6 @@ class HgBitbucketDriver implements VcsDriverInterface
foreach ($tagsData as $tag => $data) {
$this->tags[$tag] = $data['raw_node'];
}
unset($this->tags['tip']);
}
return $this->tags;

View File

@ -41,7 +41,7 @@ class HgDriver implements VcsDriverInterface
if (is_dir($this->tmpDir)) {
exec(sprintf('cd %s && hg pull -u', $tmpDir), $output);
} else {
exec(sprintf('hg clone %s %s', $url, $tmpDir), $output);
exec(sprintf('cd %s && hg clone %s %s', escapeshellarg(sys_get_temp_dir()), $url, $tmpDir), $output);
}
$this->getTags();
@ -55,7 +55,7 @@ class HgDriver implements VcsDriverInterface
{
$tmpDir = escapeshellarg($this->tmpDir);
if (null === $this->rootIdentifier) {
exec(sprintf('cd %s && hg tip --template "{rev}:{node|short}" --color never', $tmpDir), $output);
exec(sprintf('cd %s && hg tip --template "{node}"', $tmpDir), $output);
$this->rootIdentifier = $output[0];
}
@ -94,7 +94,7 @@ class HgDriver implements VcsDriverInterface
public function getComposerInformation($identifier)
{
if (!isset($this->infoCache[$identifier])) {
exec(sprintf('cd %s && hg cat --color never -r %s composer.json', escapeshellarg($this->tmpDir), escapeshellarg($identifier)), $output);
exec(sprintf('cd %s && hg cat -r %s composer.json', escapeshellarg($this->tmpDir), escapeshellarg($identifier)), $output);
$composer = implode("\n", $output);
unset($output);
@ -121,12 +121,14 @@ class HgDriver implements VcsDriverInterface
public function getTags()
{
if (null === $this->tags) {
exec(sprintf('cd %s && hg tags --color never', escapeshellarg($this->tmpDir)), $output);
$tags = array();
exec(sprintf('cd %s && hg tags', escapeshellarg($this->tmpDir)), $output);
foreach ($output as $tag) {
preg_match('(^([^\s]+)[\s]+[\d+]:(.*)$)', $tag, $match);
$tags[$match[1]] = $match[2];
if (preg_match('(^([^\s]+)\s+\d+:(.*)$)', $tag, $match))
$tags[$match[1]] = $match[2];
}
unset($tags['tip']);
$this->tags = $tags;
}
@ -141,10 +143,10 @@ class HgDriver implements VcsDriverInterface
if (null === $this->branches) {
$branches = array();
exec(sprintf('cd %s && hg branches --color never', escapeshellarg($this->tmpDir)), $output);
exec(sprintf('cd %s && hg branches', escapeshellarg($this->tmpDir)), $output);
foreach ($output as $branch) {
preg_match('(^([^\s]+)[\s]+[\d+]:(.*)$)', $branch, $match);
$branches[$match[1]] = $match[2];
if (preg_match('(^([^\s]+)\s+\d+:(.*)$)', $branch, $match))
$branches[$match[1]] = $match[2];
}
$this->branches = $branches;
@ -180,7 +182,7 @@ class HgDriver implements VcsDriverInterface
return false;
}
exec(sprintf('hg identify %s', escapeshellarg($url)), $ignored, $exit);
exec(sprintf('cd %s && hg identify %s', escapeshellarg(sys_get_temp_dir()), escapeshellarg($url)), $ignored, $exit);
return $exit === 0;
}
}

View File

@ -21,7 +21,7 @@ interface VcsDriverInterface
function getComposerInformation($identifier);
/**
* Return the root identifier (trunk, master, ..)
* Return the root identifier (trunk, master, default/tip ..)
*
* @return string Identifier
*/