Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2018-05-29 17:38:05 +0300
committerKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2018-05-29 17:38:05 +0300
commit6d8ec9764f064377ae4e3ecf0c06c7300cc1a198 (patch)
tree76c6b65e835ed7e0d366df419a9be3824a1a5ea4
parent5390620c16663b6fd379e667f6eabda598c30977 (diff)
-rw-r--r--internal/service/diff/commit.go2
-rw-r--r--internal/service/diff/commit_test.go16
-rw-r--r--ruby/lib/gitaly_server/diff_service.rb8
3 files changed, 17 insertions, 9 deletions
diff --git a/internal/service/diff/commit.go b/internal/service/diff/commit.go
index 66eeda178..e32b81d01 100644
--- a/internal/service/diff/commit.go
+++ b/internal/service/diff/commit.go
@@ -20,7 +20,7 @@ type requestWithLeftRightCommitIds interface {
}
func (s *server) CommitDiff(in *pb.CommitDiffRequest, stream pb.DiffService_CommitDiffServer) error {
- if true {
+ if false {
if err := validateRequest(in); err != nil {
return status.Errorf(codes.InvalidArgument, "CommitDiff: %v", err)
}
diff --git a/internal/service/diff/commit_test.go b/internal/service/diff/commit_test.go
index 8a0e5ec60..8e062a9ed 100644
--- a/internal/service/diff/commit_test.go
+++ b/internal/service/diff/commit_test.go
@@ -10,6 +10,7 @@ import (
"gitlab.com/gitlab-org/gitaly/internal/diff"
"gitlab.com/gitlab-org/gitaly/internal/testhelper"
+ "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/net/context"
"google.golang.org/grpc/codes"
@@ -600,22 +601,25 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) {
receivedDiffs := getDiffsFromCommitDiffClient(t, c)
- for _, v := range receivedDiffs {
- t.Logf("%q", v.FromPath)
+ i := 0
+ for j, v := range receivedDiffs {
+ t.Logf("%s == %s", v.FromPath, requestAndResult.result[j].path)
+ i = i + len(v.Patch)
}
+ t.Logf("bytes: %d", i)
require.Equal(t, len(requestAndResult.result), len(receivedDiffs), "number of diffs received")
for i, diff := range receivedDiffs {
if overflowMarker := requestAndResult.result[i].overflowMarker; overflowMarker {
- require.Equal(t, overflowMarker, diff.OverflowMarker, "overflow marker on %q", diff.FromPath)
+ assert.Equal(t, overflowMarker, diff.OverflowMarker, "overflow marker on %q", diff.FromPath)
continue
}
- require.Equal(t, requestAndResult.result[i].path, string(diff.FromPath), "path on %q", diff.FromPath)
+ assert.Equal(t, requestAndResult.result[i].path, string(diff.FromPath), "path on %q", diff.FromPath)
collapsed := requestAndResult.result[i].collapsed
- require.Equal(t, collapsed, diff.Collapsed, "collapsed on %q", diff.FromPath)
+ assert.Equal(t, collapsed, diff.Collapsed, "collapsed on %q", diff.FromPath)
if collapsed {
- require.Empty(t, diff.Patch, "patch on %q", diff.FromPath)
+ assert.Empty(t, diff.Patch, "patch on %q", diff.FromPath)
}
}
})
diff --git a/ruby/lib/gitaly_server/diff_service.rb b/ruby/lib/gitaly_server/diff_service.rb
index 85993e2ef..91f149680 100644
--- a/ruby/lib/gitaly_server/diff_service.rb
+++ b/ruby/lib/gitaly_server/diff_service.rb
@@ -35,7 +35,9 @@ module GitalyServer
Enumerator.new do |y|
begin
diffs = repo.diff(request.left_commit_id, request.right_commit_id, options, *request.paths.to_a)
- diffs.each do |diff|
+ diffsarr = diffs.to_a
+ difs_len = diffsarr.length
+ diffsarr.each_with_index do |diff, idx|
response = Gitaly::CommitDiffResponse.new(
:from_path => diff.old_path.b,
:to_path => diff.new_path.b,
@@ -44,9 +46,11 @@ module GitalyServer
:old_mode => diff.a_mode.to_i(base=8),
:new_mode => diff.b_mode.to_i(base=8),
:binary => diff.has_binary_notice?,
- :overflow_marker => diff.too_large?,
:collapsed => diff.collapsed?
)
+ if idx == difs_len - 1 && diffs.overflow?
+ break
+ end
io = StringIO.new(diff.diff)
chunk = io.read(Gitlab.config.git.write_buffer_size)