Commit 062ea80e authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'feature/add-max-count-to-count-commits-rpc' into 'master'

Add support for max_count option to Git::Repository#count_commits

See merge request gitlab-org/gitlab-ce!16145
parents ac409fb4 13932b0b
...@@ -1665,6 +1665,7 @@ module Gitlab ...@@ -1665,6 +1665,7 @@ module Gitlab
cmd = %W[#{Gitlab.config.git.bin_path} --git-dir=#{path} rev-list] cmd = %W[#{Gitlab.config.git.bin_path} --git-dir=#{path} rev-list]
cmd << "--after=#{options[:after].iso8601}" if options[:after] cmd << "--after=#{options[:after].iso8601}" if options[:after]
cmd << "--before=#{options[:before].iso8601}" if options[:before] cmd << "--before=#{options[:before].iso8601}" if options[:before]
cmd << "--max-count=#{options[:max_count]}" if options[:max_count]
cmd += %W[--count #{options[:ref]}] cmd += %W[--count #{options[:ref]}]
cmd += %W[-- #{options[:path]}] if options[:path].present? cmd += %W[-- #{options[:path]}] if options[:path].present?
......
...@@ -130,6 +130,7 @@ module Gitlab ...@@ -130,6 +130,7 @@ module Gitlab
request.after = Google::Protobuf::Timestamp.new(seconds: options[:after].to_i) if options[:after].present? request.after = Google::Protobuf::Timestamp.new(seconds: options[:after].to_i) if options[:after].present?
request.before = Google::Protobuf::Timestamp.new(seconds: options[:before].to_i) if options[:before].present? request.before = Google::Protobuf::Timestamp.new(seconds: options[:before].to_i) if options[:before].present?
request.path = options[:path] if options[:path].present? request.path = options[:path] if options[:path].present?
request.max_count = options[:max_count] if options[:max_count].present?
GitalyClient.call(@repository.storage, :commit_service, :count_commits, request, timeout: GitalyClient.medium_timeout).count GitalyClient.call(@repository.storage, :commit_service, :count_commits, request, timeout: GitalyClient.medium_timeout).count
end end
......
...@@ -1015,7 +1015,7 @@ describe Gitlab::Git::Repository, seed_helper: true do ...@@ -1015,7 +1015,7 @@ describe Gitlab::Git::Repository, seed_helper: true do
shared_examples 'extended commit counting' do shared_examples 'extended commit counting' do
context 'with after timestamp' do context 'with after timestamp' do
it 'returns the number of commits after timestamp' do it 'returns the number of commits after timestamp' do
options = { ref: 'master', limit: nil, after: Time.iso8601('2013-03-03T20:15:01+00:00') } options = { ref: 'master', after: Time.iso8601('2013-03-03T20:15:01+00:00') }
expect(repository.count_commits(options)).to eq(25) expect(repository.count_commits(options)).to eq(25)
end end
...@@ -1023,7 +1023,7 @@ describe Gitlab::Git::Repository, seed_helper: true do ...@@ -1023,7 +1023,7 @@ describe Gitlab::Git::Repository, seed_helper: true do
context 'with before timestamp' do context 'with before timestamp' do
it 'returns the number of commits before timestamp' do it 'returns the number of commits before timestamp' do
options = { ref: 'feature', limit: nil, before: Time.iso8601('2015-03-03T20:15:01+00:00') } options = { ref: 'feature', before: Time.iso8601('2015-03-03T20:15:01+00:00') }
expect(repository.count_commits(options)).to eq(9) expect(repository.count_commits(options)).to eq(9)
end end
...@@ -1031,11 +1031,19 @@ describe Gitlab::Git::Repository, seed_helper: true do ...@@ -1031,11 +1031,19 @@ describe Gitlab::Git::Repository, seed_helper: true do
context 'with path' do context 'with path' do
it 'returns the number of commits with path ' do it 'returns the number of commits with path ' do
options = { ref: 'master', limit: nil, path: "encoding" } options = { ref: 'master', path: "encoding" }
expect(repository.count_commits(options)).to eq(2) expect(repository.count_commits(options)).to eq(2)
end end
end end
context 'with max_count' do
it 'returns the number of commits up to the passed limit' do
options = { ref: 'master', max_count: 10, after: Time.iso8601('2013-03-03T20:15:01+00:00') }
expect(repository.count_commits(options)).to eq(10)
end
end
end end
context 'when Gitaly count_commits feature is enabled' do context 'when Gitaly count_commits feature is enabled' do
......
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