summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-02-23 19:05:13 +0100
committerRémy Coutable <remy@rymai.me>2017-02-23 19:06:00 +0100
commit9720bcd83df29b4dc8da241d4d632993cd3f2895 (patch)
treef718e973ac0baa0ab35016977510f289ec193c2a /lib
parent3eb0354061b6c2ad39c90c9a3e9a5afa62e7685f (diff)
downloadgitlab-ce-9720bcd83df29b4dc8da241d4d632993cd3f2895.tar.gz
Optimize a bit Gitlab::Git::Repository#log_by_shell and its specs23062-allow-git-log-to-accept-follow-and-skip
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/git/repository.rb22
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 9c68060064a..8afbd818bbd 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -333,21 +333,21 @@ module Gitlab
offset_in_ruby = use_follow_flag && options[:offset].present?
limit += offset if offset_in_ruby
- cmd = %W(#{Gitlab.config.git.bin_path} --git-dir=#{path} log)
- cmd += %W(-n #{limit})
- cmd += %w(--format=%H)
- cmd += %W(--skip=#{offset}) unless offset_in_ruby
- cmd += %w(--follow) if use_follow_flag
- cmd += %w(--no-merges) if options[:skip_merges]
- cmd += %W(--after=#{options[:after].iso8601}) if options[:after]
- cmd += %W(--before=#{options[:before].iso8601}) if options[:before]
- cmd += [sha]
- cmd += %W(-- #{options[:path]}) if options[:path].present?
+ cmd = %W[#{Gitlab.config.git.bin_path} --git-dir=#{path} log]
+ cmd << "--max-count=#{limit}"
+ cmd << '--format=%H'
+ cmd << "--skip=#{offset}" unless offset_in_ruby
+ cmd << '--follow' if use_follow_flag
+ cmd << '--no-merges' if options[:skip_merges]
+ cmd << "--after=#{options[:after].iso8601}" if options[:after]
+ cmd << "--before=#{options[:before].iso8601}" if options[:before]
+ cmd << sha
+ cmd += %W[-- #{options[:path]}] if options[:path].present?
raw_output = IO.popen(cmd) { |io| io.read }
lines = offset_in_ruby ? raw_output.lines.drop(offset) : raw_output.lines
- lines.map { |c| Rugged::Commit.new(rugged, c.strip) }
+ lines.map! { |c| Rugged::Commit.new(rugged, c.strip) }
end
def sha_from_ref(ref)