Commit 2545f6ad authored by Sean McGivern's avatar Sean McGivern

Fix following with multiple paths

`git log --follow` is only supported for a single path. CE doesn't currently
pass multiple paths, but EE does.
parent eeaeb275
...@@ -109,7 +109,7 @@ class Repository ...@@ -109,7 +109,7 @@ class Repository
offset: offset, offset: offset,
after: after, after: after,
before: before, before: before,
follow: path.present?, follow: Array(path).length == 1,
skip_merges: skip_merges skip_merges: skip_merges
} }
......
...@@ -171,6 +171,27 @@ describe Repository, models: true do ...@@ -171,6 +171,27 @@ describe Repository, models: true do
end end
end end
describe '#commits' do
it 'sets follow when path is a single path' do
expect(Gitlab::Git::Commit).to receive(:where).with(a_hash_including(follow: true)).and_call_original.twice
repository.commits('master', path: 'README.md')
repository.commits('master', path: ['README.md'])
end
it 'does not set follow when path is multiple paths' do
expect(Gitlab::Git::Commit).to receive(:where).with(a_hash_including(follow: false)).and_call_original
repository.commits('master', path: ['README.md', 'CHANGELOG'])
end
it 'does not set follow when there are no paths' do
expect(Gitlab::Git::Commit).to receive(:where).with(a_hash_including(follow: false)).and_call_original
repository.commits('master')
end
end
describe '#find_commits_by_message' do describe '#find_commits_by_message' do
it 'returns commits with messages containing a given string' do it 'returns commits with messages containing a given string' do
commit_ids = repository.find_commits_by_message('submodule').map(&:id) commit_ids = repository.find_commits_by_message('submodule').map(&:id)
......
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