diff options
author | Jan Provaznik <jprovaznik@gitlab.com> | 2018-12-03 00:47:33 +0300 |
---|---|---|
committer | Jan Provaznik <jprovaznik@gitlab.com> | 2018-12-06 11:25:09 +0300 |
commit | 58bfd733310effa94af0e1f1f19e53e34235cffc (patch) | |
tree | e793b8f8b2669034e80b7668304f3fc75dc23deb /lib/gitlab/wiki_file_finder.rb | |
parent | 00acef434031b5dc0bf39576a9e83802c7806842 (diff) |
Optimized file search to work without limits
* removed 100 limit on file search results because we
load all results anyway
* expensive processing (parsing match content, utf encoding)
is done only for selected page in paginated output
Diffstat (limited to 'lib/gitlab/wiki_file_finder.rb')
-rw-r--r-- | lib/gitlab/wiki_file_finder.rb | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/gitlab/wiki_file_finder.rb b/lib/gitlab/wiki_file_finder.rb index a00cd65594c..5303b3582ab 100644 --- a/lib/gitlab/wiki_file_finder.rb +++ b/lib/gitlab/wiki_file_finder.rb @@ -2,6 +2,8 @@ module Gitlab class WikiFileFinder < FileFinder + BATCH_SIZE = 100 + attr_reader :repository def initialize(project, ref) @@ -12,13 +14,11 @@ module Gitlab private - def search_filenames(query, except) + def search_filenames(query) safe_query = Regexp.escape(query.tr(' ', '-')) safe_query = Regexp.new(safe_query, Regexp::IGNORECASE) filenames = repository.ls_files(ref) - filenames.delete_if { |filename| except.include?(filename) } unless except.empty? - filenames.grep(safe_query).first(BATCH_SIZE) end end |