diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-08-17 13:53:32 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-08-17 13:53:32 +0000 |
commit | 2c528aad8667ec8cafd0040eb2f33594eec693e7 (patch) | |
tree | 1cfc97b570f70aa08f0d03c83ffe6c2a068e284b | |
parent | 05fe45457b048ac10049a9a8785a6587816c98e5 (diff) | |
parent | 40752ce7e98b7bab03ffa9d49ea8a26f5d0e098b (diff) | |
download | gitlab-ce-2c528aad8667ec8cafd0040eb2f33594eec693e7.tar.gz |
Merge branch 'grpc-1.4.5' into 'master'
Use grpc 1.4.5
Closes gitaly#468
See merge request !13597
-rw-r--r-- | Gemfile.lock | 2 | ||||
-rw-r--r-- | lib/gitlab/gitaly_client/blob_service.rb | 13 | ||||
-rw-r--r-- | lib/gitlab/gitaly_client/commit_service.rb | 18 |
3 files changed, 23 insertions, 10 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index 1554f314d1e..ef4411ca7b4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -356,7 +356,7 @@ GEM activesupport grape (>= 0.16.0) rake - grpc (1.4.0) + grpc (1.4.5) google-protobuf (~> 3.1) googleauth (~> 0.5.1) haml (4.0.7) diff --git a/lib/gitlab/gitaly_client/blob_service.rb b/lib/gitlab/gitaly_client/blob_service.rb index 7ea8e8d0857..a250eb75bd4 100644 --- a/lib/gitlab/gitaly_client/blob_service.rb +++ b/lib/gitlab/gitaly_client/blob_service.rb @@ -13,10 +13,17 @@ module Gitlab ) response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :get_blob, request) - blob = response.first - return unless blob.oid.present? + data = '' + blob = nil + response.each do |msg| + if blob.nil? + blob = msg + end - data = response.reduce(blob.data.dup) { |memo, msg| memo << msg.data.dup } + data << msg.data + end + + return nil if blob.oid.blank? Gitlab::Git::Blob.new( id: blob.oid, diff --git a/lib/gitlab/gitaly_client/commit_service.rb b/lib/gitlab/gitaly_client/commit_service.rb index 93268d9f33c..b36e81278d6 100644 --- a/lib/gitlab/gitaly_client/commit_service.rb +++ b/lib/gitlab/gitaly_client/commit_service.rb @@ -60,15 +60,21 @@ module Gitlab ) response = GitalyClient.call(@repository.storage, :commit_service, :tree_entry, request) - entry = response.first - return unless entry.oid.present? - if entry.type == :BLOB - rest_of_data = response.reduce("") { |memo, msg| memo << msg.data } - entry.data += rest_of_data + entry = nil + data = '' + response.each do |msg| + if entry.nil? + entry = msg + + break unless entry.type == :BLOB + end + + data << msg.data end + entry.data = data - entry + entry unless entry.oid.blank? end def tree_entries(repository, revision, path) |