diff --git a/src/Composer/Package/Archiver/BaseExcludeFilter.php b/src/Composer/Package/Archiver/BaseExcludeFilter.php index a62d56596..dca24eb67 100644 --- a/src/Composer/Package/Archiver/BaseExcludeFilter.php +++ b/src/Composer/Package/Archiver/BaseExcludeFilter.php @@ -137,7 +137,7 @@ abstract class BaseExcludeFilter $pattern .= '^/'; $rule = substr($rule, 1); } elseif (strlen($rule) - 1 === strpos($rule, '/')) { - $pattern .= '^/'; + $pattern .= '/'; $rule = substr($rule, 0, -1); } elseif (false === strpos($rule, '/')) { $pattern .= '/'; diff --git a/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php b/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php index ed87ee2f0..bc74be1e9 100644 --- a/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php +++ b/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php @@ -58,10 +58,12 @@ class ArchivableFilesFinderTest extends \PHPUnit_Framework_TestCase 'D/prefixD', 'D/prefixE', 'D/prefixF', - '/E/subtestA.foo', - '/F/subtestA.foo', - '/G/subtestA.foo', - '/H/subtestA.foo', + 'E/subtestA.foo', + 'F/subtestA.foo', + 'G/subtestA.foo', + 'H/subtestA.foo', + 'I/J/subtestA.foo', + 'K/dirJ/subtestA.foo', 'toplevelA.foo', 'toplevelB.foo', 'prefixA.foo', @@ -127,6 +129,8 @@ class ArchivableFilesFinderTest extends \PHPUnit_Framework_TestCase '/F/subtestA.foo', '/G/subtestA.foo', '/H/subtestA.foo', + '/I/J/subtestA.foo', + '/K/dirJ/subtestA.foo', '/parameters.yml', '/parameters.yml.dist', '/prefixB.foo', @@ -164,6 +168,7 @@ class ArchivableFilesFinderTest extends \PHPUnit_Framework_TestCase 'F/', 'G/*', 'H/**', + 'J/', 'parameters.yml', '\!important!.txt' )));