Fix for #2739 (and #1755), added support for directory excludes in the .gitignore file like /directory or directory/

main
Sandy Pleyte 10 years ago
parent e8a3fc5c1c
commit 21109ada22

@ -140,8 +140,8 @@ abstract class BaseExcludeFilter
$pattern .= '/';
}
// remove delimiters as well as caret (^) from the regex
$pattern .= substr(Finder\Glob::toRegex($rule), 2, -1);
// remove delimiters as well as caret (^) and dollar sign ($) from the regex
$pattern .= substr(Finder\Glob::toRegex($rule), 2, -2) . '/*.*$';
return array($pattern . '#', $negate, false);
}

@ -46,6 +46,24 @@ class ArchivableFilesFinderTest extends \PHPUnit_Framework_TestCase
'B/sub/prefixD.foo',
'B/sub/prefixE.foo',
'B/sub/prefixF.foo',
'C/prefixA.foo',
'C/prefixB.foo',
'C/prefixC.foo',
'C/prefixD.foo',
'C/prefixE.foo',
'C/prefixF.foo',
'D/prefixA',
'D/prefixB',
'D/prefixC',
'D/prefixD',
'D/prefixE',
'D/prefixF',
'E/prefixA.foo',
'E/prefixB.foo',
'E/prefixC.foo',
'E/prefixD.foo',
'E/prefixE.foo',
'E/prefixF.foo',
'toplevelA.foo',
'toplevelB.foo',
'prefixA.foo',
@ -91,6 +109,20 @@ class ArchivableFilesFinderTest extends \PHPUnit_Framework_TestCase
'/B/sub/prefixD.foo',
'/B/sub/prefixE.foo',
'/B/sub/prefixF.foo',
'/C/prefixA.foo',
'/C/prefixD.foo',
'/C/prefixE.foo',
'/C/prefixF.foo',
'/D/prefixA',
'/D/prefixB',
'/D/prefixC',
'/D/prefixD',
'/D/prefixE',
'/D/prefixF',
'/E/prefixA.foo',
'/E/prefixD.foo',
'/E/prefixE.foo',
'/E/prefixF.foo',
'/prefixB.foo',
'/prefixD.foo',
'/prefixE.foo',
@ -120,6 +152,9 @@ class ArchivableFilesFinderTest extends \PHPUnit_Framework_TestCase
'!/*/*/prefixF.foo',
'',
'refixD.foo',
'/C',
'D/prefixA',
'E/'
)));
// git does not currently support negative git attributes

@ -29,8 +29,8 @@ class GitExcludeFilterTest extends \PHPUnit_Framework_TestCase
public function patterns()
{
return array(
array('app/config/parameters.yml', array('#(?=[^\.])app/(?=[^\.])config/(?=[^\.])parameters\.yml$#', false, false)),
array('!app/config/parameters.yml', array('#(?=[^\.])app/(?=[^\.])config/(?=[^\.])parameters\.yml$#', true, false)),
array('app/config/parameters.yml', array('#(?=[^\.])app/(?=[^\.])config/(?=[^\.])parameters\.yml/*.*$#', false, false)),
array('!app/config/parameters.yml', array('#(?=[^\.])app/(?=[^\.])config/(?=[^\.])parameters\.yml/*.*$#', true, false)),
);
}
}

Loading…
Cancel
Save