don't advice functions defined in the same library
require library f

Functions from that library are used
in `projectile-dirname-matching-count'.
Merge pull request #534 from tarsius/no-advice

don't advice functions defined in the same library
[Fix #530] Change messages for consistency
[Fix #525] Change helm-projectile-sources-list order

- Prioritize file list above any other sources, except buffer since it is
usually small per project.

- Remove recentf list since it is just a subset of file list and if
  anything find-able in the recentf list, it should be inside file list.
  Remove to speed up helm-projectile command. User can invoke this command
  separately if they need a reminder of previously worked files.

- Remove directory listing for speeding up the command as well. Finding
  directory is a less frequent operation, and user can open a Dired
  buffer of the directory of current file anyway. This command has more
  meaning in stock Projectile then in Helm Projectile.

- Move project list to the bottom, since users won't need to switch
  project too frequently.
Merge pull request #533 from tuhdo/usability

[FIX #525 and  #530] Usability
[Fix #537] Explicitly add search path to grep command

In OSX, grep must be supplied with a directory to start the search.
Otherwise, no result is returned.
Merge pull request #539 from tuhdo/helm-projectile-grep-osx

[Fix #537] Explicitly add search path to grep command
Add a timer to initialize command history properly

With a timer, it leaves enough time for loading minibuffer history.

Without a timer, helm-projectile-ack/ag prevents user to quit the
commands with C-g in one try, thus requires multiple C-g pressings. A
timer introduces a brief delay for Emacs to accept user input and fix
multiple C-g pressings issue. This is also the way helm-find-files-grep
does. This is just a speculation, but it fixes the issue.
Fix helm-projectile-ack file ignoring

Currently helm-projectile-ack processes ignored files and directories
the same as projectile-ack. This works for directories, but not work for
ignoring files with wildcard matching. When user adds files with
wildcard, ack will see this not as an argument to it but a search string
and returns no result.

This is fixed by using "--ignore-file=match:" pattern that accepts a
regex that matches files. Also, shell-quote-argument must be used to
properly pass the file patterns with regex in it, otherwise ack also
returns no result.
Merge pull request #531 from tuhdo/master

[FIX] Add timer to allow canceling helm-projectile-grep/ack properly, fix helm-projectile-ack file ignoring
Use correct help function for displaying help

Use helm-ff-help-message instead of helm-find-file-help-message.
Merge pull request #544 from tuhdo/helm-projectile-help-message

Use correct help function for displaying help
[Fix #545] Retrieve sub-projects correctly and efficiently

Initially, the function projectile-get-all-sub-projects check for cycles
in sub-projects and terminate it early. Unfortunately, this approach
ignores further sub-projects down the source tree. Since using the
command "git submodule --quiet foreach 'echo $name'", it does not output
sub-project cycles like ../../bundle/html-bundle anymore, we can safely
ignore this check. We now expect external commands to return submodule
properly.

Also fix a bug that caused duplicate sub-projects. When there's no more
submodule, simply return nil.
Merge pull request #535 from tarsius/require-f

require library f
Merge pull request #548 from tuhdo/helm-projectile-help-message

[Fix #545] Retrieve sub-projects correctly and efficiently
(WIP) benchmark suite