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:
authorZeger-Jan van de Weg 🌴 OOO back on 12th of August <zegerjan@gitlab.com>2018-08-03 18:24:25 +0300
committerZeger-Jan van de Weg 🌴 OOO back on 12th of August <zegerjan@gitlab.com>2018-08-03 18:24:25 +0300
commit84308e0db3a59386613c5a3fee3a4f1d8e084280 (patch)
tree251d23a35ab6cb85e6f434be0a4f276fe9a33e0a
parentbd9d5895c30d2b526d2292c84a6732310f48add2 (diff)
parent1507661a8177da382070c2383e5bfff9ae4cf9f4 (diff)
Merge branch 'list-new-commits-chunking' into 'master'
Check errors and fix chunking in ListNewCommits See merge request gitlab-org/gitaly!852
-rw-r--r--changelogs/unreleased/list-new-commits-chunking.yml5
-rw-r--r--internal/service/ref/list_new_commits.go19
2 files changed, 17 insertions, 7 deletions
diff --git a/changelogs/unreleased/list-new-commits-chunking.yml b/changelogs/unreleased/list-new-commits-chunking.yml
new file mode 100644
index 000000000..e2a707bf8
--- /dev/null
+++ b/changelogs/unreleased/list-new-commits-chunking.yml
@@ -0,0 +1,5 @@
+---
+title: Check errors and fix chunking in ListNewCommits
+merge_request: 852
+author:
+type: fixed
diff --git a/internal/service/ref/list_new_commits.go b/internal/service/ref/list_new_commits.go
index cf9f7ae0d..8e557daac 100644
--- a/internal/service/ref/list_new_commits.go
+++ b/internal/service/ref/list_new_commits.go
@@ -3,7 +3,6 @@ package ref
import (
"bufio"
"regexp"
- "strings"
pb "gitlab.com/gitlab-org/gitaly-proto/go"
"gitlab.com/gitlab-org/gitaly/internal/git"
@@ -34,27 +33,33 @@ func (s *server) ListNewCommits(in *pb.ListNewCommitsRequest, stream pb.RefServi
return status.Errorf(codes.Internal, "ListNewCommits: catfile: %v", err)
}
- i := 0
commits := []*pb.GitCommit{}
scanner := bufio.NewScanner(revList)
for scanner.Scan() {
line := scanner.Text()
- commit, err := log.GetCommitCatfile(batch, strings.TrimSpace(line))
+ commit, err := log.GetCommitCatfile(batch, line)
if err != nil {
return status.Errorf(codes.Internal, "ListNewCommits: commit not found: %v", err)
}
commits = append(commits, commit)
- if i%10 == 0 {
+ if len(commits) >= 10 {
response := &pb.ListNewCommitsResponse{Commits: commits}
- stream.Send(response)
+ if err := stream.Send(response); err != nil {
+ return err
+ }
+
commits = commits[:0]
}
}
- response := &pb.ListNewCommitsResponse{Commits: commits}
- stream.Send(response)
+ if len(commits) > 0 {
+ response := &pb.ListNewCommitsResponse{Commits: commits}
+ if err := stream.Send(response); err != nil {
+ return err
+ }
+ }
return revList.Wait()
}