diff options
author | Zeger-Jan van de Weg <zegerjan@gitlab.com> | 2017-10-11 19:41:51 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <zegerjan@gitlab.com> | 2017-10-11 19:41:51 +0300 |
commit | 0dc067f6fb09d17fe81c0269ae651bd9e993b088 (patch) | |
tree | fa8e4a90f388e9c13b55f6ad6da8fa0b5145badc | |
parent | 8ea08759ab53bbf4889396c93a41ed0a2cef05c8 (diff) | |
parent | ccaaf9c463dc7102aac0ed9b5c266d602cb6b790 (diff) |
Merge branch 'merge-branch-update' into 'master'
Pass full BranchUpdate result on successful merge
See merge request gitlab-org/gitaly!406
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | internal/service/operations/merge_test.go | 7 | ||||
-rw-r--r-- | ruby/lib/gitaly_server/operations_service.rb | 12 |
3 files changed, 13 insertions, 8 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 9123a2098..57478dc06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ UNRELEASED +- Pass full BranchUpdate result on successful merge + https://gitlab.com/gitlab-org/gitaly/merge_requests/406 - Deprecate implementation of RepositoryService.Exists https://gitlab.com/gitlab-org/gitaly/merge_requests/408 - Use gitaly-proto 0.42.0 diff --git a/internal/service/operations/merge_test.go b/internal/service/operations/merge_test.go index fd0574fcf..e51eb425f 100644 --- a/internal/service/operations/merge_test.go +++ b/internal/service/operations/merge_test.go @@ -75,7 +75,6 @@ func TestSuccessfulMerge(t *testing.T) { secondResponse, err := mergeBidi.Recv() require.NoError(t, err, "receive second response") - require.NotEqual(t, pb.UserMergeBranchResponse{}, *secondResponse, "second response should not be empty") err = consumeEOF(func() error { _, err = mergeBidi.Recv() @@ -86,6 +85,8 @@ func TestSuccessfulMerge(t *testing.T) { commit, err := gitlog.GetCommit(ctx, testRepo, mergeBranchName, "") require.NoError(t, err, "look up git commit after call has finished") + require.Equal(t, pb.OperationBranchUpdate{CommitId: commit.Id}, *(secondResponse.BranchUpdate)) + require.Contains(t, commit.ParentIds, mergeBranchHeadBefore, "merge parents must include previous HEAD of branch") require.Contains(t, commit.ParentIds, commitToMerge, "merge parents must include commit to merge") @@ -158,9 +159,7 @@ func TestAbortedMerge(t *testing.T) { t.Fatal(err) } - if secondResponse != nil { - require.NotEqual(t, pb.UserMergeBranchResponse{}, *secondResponse, "second response should be empty") - } + require.Equal(t, "", secondResponse.GetBranchUpdate().GetCommitId(), "merge should not have been applied") require.Error(t, err) commit, err := gitlog.GetCommit(ctx, testRepo, mergeBranchName, "") diff --git a/ruby/lib/gitaly_server/operations_service.rb b/ruby/lib/gitaly_server/operations_service.rb index 988d3be1e..a20679f99 100644 --- a/ruby/lib/gitaly_server/operations_service.rb +++ b/ruby/lib/gitaly_server/operations_service.rb @@ -113,9 +113,7 @@ module GitalyServer target_branch = first_request.branch.dup message = first_request.message.dup - merge_commit_id = nil - repository.merge(user, source_sha, target_branch, message) do |commit_id| - merge_commit_id = commit_id + result = repository.merge(user, source_sha, target_branch, message) do |commit_id| y << Gitaly::UserMergeBranchResponse.new(commit_id: commit_id) second_request = session.next @@ -124,7 +122,13 @@ module GitalyServer end end - y << Gitaly::UserMergeBranchResponse.new(branch_update: Gitaly::OperationBranchUpdate.new(commit_id: merge_commit_id)) + branch_update = Gitaly::OperationBranchUpdate.new( + commit_id: result.newrev, + repo_created: result.repo_created, + branch_created: result.branch_created + ) + + y << Gitaly::UserMergeBranchResponse.new(branch_update: branch_update) end end end |