Commit dc78ee4e authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'ignore-binary-files-in-git-grep' into 'master'

Ignore binary files in code search to prevent Error 500

Leaving out the -I option in "git grep" would cause an Error 500 because the
resulting line would include "Binary file X matches", which would cause the project search results to crash with the following error:

```
ActionView::Template::Error (wrong argument type nil (expected Regexp)):
    1: - blob = @project.repository.parse_search_result(blob)
    2: .blob-result
    3:   .file-holder
    4:     .file-title
  app/models/repository.rb:742:in `sub'
  app/models/repository.rb:742:in `block in parse_search_result_from_grep'
  app/models/repository.rb:741:in `each_line'
  app/models/repository.rb:741:in `parse_search_result_from_grep'
  app/models/repository.rb:682:in `parse_search_result'
  app/views/search/results/_blob.html.haml:1:in `_app_views_search_results__blob_html_haml__1959871337755590783_162450160'
  app/views/search/_results.html.haml:20:in `_app_views_search__results_html_haml__2198486911700532411_58329920'
  app/views/search/show.html.haml:7:in `_app_views_search_show_html_haml___1698304427272645201_62235300'
```

See merge request !2565
parents fb3e1026 5972dedf
......@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.5.0 (unreleased)
- Add "visibility" flag to GET /projects api endpoint
- Ignore binary files in code search to prevent Error 500 (Stan Hu)
- Upgrade gitlab_git to 7.2.23 to fix commit message mentions in first branch push
- New UI for pagination
- Fix diff comments loaded by AJAX to load comment with diff in discussion tab
......
......@@ -598,7 +598,7 @@ class Repository
def search_files(query, ref)
offset = 2
args = %W(#{Gitlab.config.git.bin_path} grep -i -n --before-context #{offset} --after-context #{offset} -e #{query} #{ref || root_ref})
args = %W(#{Gitlab.config.git.bin_path} grep -i -I -n --before-context #{offset} --after-context #{offset} -e #{query} #{ref || root_ref})
Gitlab::Popen.popen(args, path_to_repo).first.scrub.split(/^--$/)
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment