Merge branch '36571-ignore-root-in-repo' into 'master'
Resolve "Error while searching for text starting with slash "/"" Closes #36571 See merge request gitlab-org/gitlab-ce!16455
This commit is contained in:
commit
480c01a974
|
@ -938,9 +938,11 @@ class Repository
|
||||||
end
|
end
|
||||||
|
|
||||||
def search_files_by_name(query, ref)
|
def search_files_by_name(query, ref)
|
||||||
return [] if empty? || query.blank?
|
safe_query = Regexp.escape(query.sub(/^\/*/, ""))
|
||||||
|
|
||||||
args = %W(ls-tree --full-tree -r #{ref || root_ref} --name-status | #{Regexp.escape(query)})
|
return [] if empty? || safe_query.blank?
|
||||||
|
|
||||||
|
args = %W(ls-tree --full-tree -r #{ref || root_ref} --name-status | #{safe_query})
|
||||||
|
|
||||||
run_git(args).first.lines.map(&:strip)
|
run_git(args).first.lines.map(&:strip)
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Ignore leading slashes when searching for files within context of repository.
|
||||||
|
merge_request:
|
||||||
|
author: Andrew McCallum
|
||||||
|
type: fixed
|
|
@ -668,6 +668,18 @@ describe Repository do
|
||||||
expect(results.first).to eq('files/html/500.html')
|
expect(results.first).to eq('files/html/500.html')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'ignores leading slashes' do
|
||||||
|
results = repository.search_files_by_name('/files', 'master')
|
||||||
|
|
||||||
|
expect(results.first).to eq('files/html/500.html')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'properly handles when query is only slashes' do
|
||||||
|
results = repository.search_files_by_name('//', 'master')
|
||||||
|
|
||||||
|
expect(results).to match_array([])
|
||||||
|
end
|
||||||
|
|
||||||
it 'properly handles when query is not present' do
|
it 'properly handles when query is not present' do
|
||||||
results = repository.search_files_by_name('', 'master')
|
results = repository.search_files_by_name('', 'master')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue