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:
authorAlejandro Rodríguez <alejorro70@gmail.com>2018-08-27 22:45:01 +0300
committerAlejandro Rodríguez <alejorro70@gmail.com>2018-08-27 22:45:01 +0300
commitc9ac6939d92b6f7e9d89f10eae1ca68c42cde51f (patch)
tree0ac95451efccccbe3c7fb088eacee63039a0baa3
parentac71ee6271e2b545a063a3598531d53cb0928ef5 (diff)
parent60dd5be3782a53f2d10c2d0805616e5a98f4d66c (diff)
Merge branch 'bvl-merge-base-multiple-revisions' into 'master'
Allow merge base to receive more than 2 revisions See merge request gitlab-org/gitaly!869
-rw-r--r--changelogs/unreleased/bvl-merge-base-multiple-revisions.yml5
-rw-r--r--internal/service/repository/merge_base.go4
-rw-r--r--internal/service/repository/merge_base_test.go52
3 files changed, 25 insertions, 36 deletions
diff --git a/changelogs/unreleased/bvl-merge-base-multiple-revisions.yml b/changelogs/unreleased/bvl-merge-base-multiple-revisions.yml
new file mode 100644
index 000000000..be4b55d83
--- /dev/null
+++ b/changelogs/unreleased/bvl-merge-base-multiple-revisions.yml
@@ -0,0 +1,5 @@
+---
+title: Allow merge base to receive more than 2 revisions
+merge_request: 869
+author:
+type: changed
diff --git a/internal/service/repository/merge_base.go b/internal/service/repository/merge_base.go
index a9c5692e1..597f5bee1 100644
--- a/internal/service/repository/merge_base.go
+++ b/internal/service/repository/merge_base.go
@@ -14,8 +14,8 @@ import (
func (s *server) FindMergeBase(ctx context.Context, req *pb.FindMergeBaseRequest) (*pb.FindMergeBaseResponse, error) {
revisions := req.GetRevisions()
- if len(revisions) != 2 {
- return nil, status.Errorf(codes.InvalidArgument, "FindMergeBase: 2 revisions are required")
+ if len(revisions) < 2 {
+ return nil, status.Errorf(codes.InvalidArgument, "FindMergeBase: at least 2 revisions are required")
}
args := []string{"merge-base"}
diff --git a/internal/service/repository/merge_base_test.go b/internal/service/repository/merge_base_test.go
index 79688ae69..53cc54d3b 100644
--- a/internal/service/repository/merge_base_test.go
+++ b/internal/service/repository/merge_base_test.go
@@ -58,6 +58,15 @@ func TestSuccessfulFindFindMergeBaseRequest(t *testing.T) {
},
base: "",
},
+ {
+ desc: "2+ revisions",
+ revisions: [][]byte{
+ []byte("few-commits"),
+ []byte("master"),
+ []byte("570e7b2abdd848b95f2f578043fc23bd6f6fd24d"),
+ },
+ base: "1a0b36b3cdad1d2ee32457c102a8c0b7056fa863",
+ },
}
for _, testCase := range testCases {
@@ -88,41 +97,16 @@ func TestFailedFindMergeBaseRequestDueToValidations(t *testing.T) {
testRepo, _, cleanupFn := testhelper.NewTestRepo(t)
defer cleanupFn()
- testCases := []struct {
- desc string
- revisions [][]byte
- code codes.Code
- }{
- {
- desc: "1 revision",
- revisions: [][]byte{
- []byte("372ab6950519549b14d220271ee2322caa44d4eb"),
- },
- code: codes.InvalidArgument,
- },
- {
- desc: "2+ revisions",
- revisions: [][]byte{
- []byte("master"),
- []byte("gitaly-stuff"),
- []byte("spooky-stuff"),
- },
- code: codes.InvalidArgument,
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
+ request := &pb.FindMergeBaseRequest{
+ Repository: testRepo,
+ Revisions: [][]byte{
+ []byte("372ab6950519549b14d220271ee2322caa44d4eb"),
},
}
- for _, testCase := range testCases {
- t.Run(testCase.desc, func(t *testing.T) {
- ctx, cancel := testhelper.Context()
- defer cancel()
-
- request := &pb.FindMergeBaseRequest{
- Repository: testRepo,
- Revisions: testCase.revisions,
- }
-
- _, err := client.FindMergeBase(ctx, request)
- testhelper.RequireGrpcError(t, err, testCase.code)
- })
- }
+ _, err := client.FindMergeBase(ctx, request)
+ testhelper.RequireGrpcError(t, err, codes.InvalidArgument)
}