diff --git a/CHANGELOG.md b/CHANGELOG.md index ac697d5a4..80a8c68d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +### [1.1.0] - 2016-05-10 + + * Added fallback to SSH for https bitbucket URLs + * Added BaseCommand::isProxyCommand that can be overriden to mark a command as being a mere proxy, which helps avoid duplicate warnings etc on composer startup + * Fixed archiving generating long paths in zip files on Windows + ### [1.1.0-RC] - 2016-04-29 * Added ability for plugins to register their own composer commands diff --git a/composer.lock b/composer.lock index b2182bfd8..e4df2b28f 100644 --- a/composer.lock +++ b/composer.lock @@ -429,7 +429,7 @@ }, { "name": "symfony/console", - "version": "v2.8.5", + "version": "v2.8.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", @@ -489,7 +489,7 @@ }, { "name": "symfony/filesystem", - "version": "v2.8.5", + "version": "v2.8.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -538,7 +538,7 @@ }, { "name": "symfony/finder", - "version": "v2.8.5", + "version": "v2.8.6", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", @@ -646,7 +646,7 @@ }, { "name": "symfony/process", - "version": "v2.8.5", + "version": "v2.8.6", "source": { "type": "git", "url": "https://github.com/symfony/process.git", @@ -1600,7 +1600,7 @@ }, { "name": "symfony/yaml", - "version": "v2.8.5", + "version": "v2.8.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", diff --git a/src/Composer/Package/Archiver/ZipArchiver.php b/src/Composer/Package/Archiver/ZipArchiver.php index 310addaea..87337558e 100644 --- a/src/Composer/Package/Archiver/ZipArchiver.php +++ b/src/Composer/Package/Archiver/ZipArchiver.php @@ -13,6 +13,7 @@ namespace Composer\Package\Archiver; use ZipArchive; +use Composer\Util\Filesystem; /** * @author Jan Prieser @@ -28,15 +29,17 @@ class ZipArchiver implements ArchiverInterface */ public function archive($sources, $target, $format, array $excludes = array()) { - $sources = realpath($sources); + $fs = new Filesystem(); + $sources = $fs->normalizePath($sources); + $zip = new ZipArchive(); $res = $zip->open($target, ZipArchive::CREATE); if ($res === true) { $files = new ArchivableFilesFinder($sources, $excludes); foreach ($files as $file) { /** @var $file \SplFileInfo */ - $filepath = $file->getPath()."/".$file->getFilename(); - $localname = str_replace($sources."/", '', $filepath); + $filepath = strtr($file->getPath()."/".$file->getFilename(), '\\', '/'); + $localname = str_replace($sources.'/', '', $filepath); if ($file->isDir()) { $zip->addEmptyDir($localname); } else {