gruntjs/grunt — pull request #842 by my8bird (2013-07-11 14:13:40+00:00)
Title: Increase speed of finding matched files when exclude is overly broad

Long ago it seems our grunt file had patterns like below to find all of the source javascript files but exclude our specs.

```javascript
['app/**/*.js', '!**/*_spec.js'] // Note missing app at the front of the exclude to scope the glob.
```

This worked fine until we upgraded to grunt 0.4. Then our builds got much slower, 0.5 seconds to 10 seconds. The culprit was the negation of the specs. Grunt currently is running the negation glob against the file system and then removing the excluded files. This is fine for small systems (or well written excludes) but is slow when you have lots of files (or poorly written globs). At any rate there is no reason to hit the disk just to exclude file paths which are already known.

- [x] Test suite passes
- [x] Add a test (I did not do this since I could not determine a way to asset that we did not touch disk for the negate step).