diff options
author | Zeger-Jan van de Weg 🌴 OOO back on 12th of August <zegerjan@gitlab.com> | 2018-08-03 18:24:25 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg 🌴 OOO back on 12th of August <zegerjan@gitlab.com> | 2018-08-03 18:24:25 +0300 |
commit | 84308e0db3a59386613c5a3fee3a4f1d8e084280 (patch) | |
tree | 251d23a35ab6cb85e6f434be0a4f276fe9a33e0a | |
parent | bd9d5895c30d2b526d2292c84a6732310f48add2 (diff) | |
parent | 1507661a8177da382070c2383e5bfff9ae4cf9f4 (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.yml | 5 | ||||
-rw-r--r-- | internal/service/ref/list_new_commits.go | 19 |
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() } |