1
0
Fork 0

Git can handle commit references in git archive just fine so use them

pull/1567/head
Nils Adermann 2013-02-07 09:45:51 +01:00
parent ba51027680
commit bcbc50c0d6
2 changed files with 15 additions and 5 deletions

View File

@ -32,9 +32,7 @@ class GitArchiver implements ArchiverInterface
*/
public function archive($sources, $target, $format, $sourceRef = null)
{
// Since git-archive no longer works with a commit ID in git 1.7.10,
// use by default the HEAD reference instead of the commit sha1
if (null === $sourceRef || preg_match('/^[0-9a-f]{40}$/i', $sourceRef)) {
if (null === $sourceRef) {
$sourceRef = 'HEAD';
}

View File

@ -31,7 +31,7 @@ class GitArchiverTest extends ArchiverTest
// Test archive
$archiver = new GitArchiver();
$archiver->archive($package->getSourceUrl(), $target, 'zip', 'master');
$archiver->archive($package->getSourceUrl(), $target, 'zip', 'master^1');
$this->assertFileExists($target);
unlink($target);
@ -46,7 +46,7 @@ class GitArchiverTest extends ArchiverTest
// Test archive
$archiver = new GitArchiver();
$archiver->archive($package->getSourceUrl(), $target, 'tar', 'master');
$archiver->archive($package->getSourceUrl(), $target, 'tar', 'master^1');
$this->assertFileExists($target);
unlink($target);
@ -78,6 +78,18 @@ class GitArchiverTest extends ArchiverTest
throw new \RuntimeException('Could not commit: '.$this->process->getErrorOutput());
}
$result = file_put_contents('d', 'c');
if (false === $result) {
chdir($currentWorkDir);
throw new \RuntimeException('Could not save file.');
}
$result = $this->process->execute('git add d && git commit -m "commit d" -q');
if ($result > 0) {
chdir($currentWorkDir);
throw new \RuntimeException('Could not commit: '.$this->process->getErrorOutput());
}
chdir($currentWorkDir);
}
}