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 <zegerjan@gitlab.com>2017-10-11 19:41:51 +0300
committerZeger-Jan van de Weg <zegerjan@gitlab.com>2017-10-11 19:41:51 +0300
commit0dc067f6fb09d17fe81c0269ae651bd9e993b088 (patch)
treefa8e4a90f388e9c13b55f6ad6da8fa0b5145badc
parent8ea08759ab53bbf4889396c93a41ed0a2cef05c8 (diff)
parentccaaf9c463dc7102aac0ed9b5c266d602cb6b790 (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.md2
-rw-r--r--internal/service/operations/merge_test.go7
-rw-r--r--ruby/lib/gitaly_server/operations_service.rb12
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