summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2016-05-18 17:03:12 -0500
committerRobert Speicher <rspeicher@gmail.com>2016-05-18 17:03:12 -0500
commitce3958ebae0332ddc295c7fe234b6a8af6f25da8 (patch)
treef69d84c342333ef72297a6b778022e73f6db378c
parent57fde5a83e717db861b025193fdf04e9f087e148 (diff)
downloadgitlab-ce-rs-issue-3055.tar.gz
Use extended regexp flag for `git grep`-ing filesrs-issue-3055
Closes #3055
-rw-r--r--app/models/repository.rb2
-rw-r--r--spec/models/repository_spec.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 3716ea6ad6c..ca62fbbdf04 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -854,7 +854,7 @@ class Repository
def search_files(query, ref)
offset = 2
- args = %W(#{Gitlab.config.git.bin_path} grep -i -I -n --before-context #{offset} --after-context #{offset} -e #{Regexp.escape(query)} #{ref || root_ref})
+ args = %W(#{Gitlab.config.git.bin_path} grep -i -I -n --before-context #{offset} --after-context #{offset} -E -e #{Regexp.escape(query)} #{ref || root_ref})
Gitlab::Popen.popen(args, path_to_repo).first.scrub.split(/^--$/)
end
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index 34a13f9b5c9..7c94f3639d4 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -100,6 +100,12 @@ describe Repository, models: true do
expect(results.first).not_to start_with('fatal:')
end
+ it 'properly handles an unmatched parenthesis' do
+ results = repository.search_files("test(", 'master')
+
+ expect(results.first).not_to start_with('fatal:')
+ end
+
describe 'result' do
subject { results.first }