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:
authorSami Hiltunen <shiltunen@gitlab.com>2021-03-11 14:42:21 +0300
committerSami Hiltunen <shiltunen@gitlab.com>2021-03-11 18:37:06 +0300
commit53ea4846e77086bf6766a1dca6c8949b39048f3b (patch)
tree1c5436685ef2bbd0a5300ba72b7eba814923e031
parent44f9bfba28da3e883ceceae0fa49a698467ba7eb (diff)
replace existing isAncestor implementations with local repo's one
Operations service contains a method for checking ancestry of a commit. This commit replaces the implementation with the one that was now added to localrepo.
-rw-r--r--internal/gitaly/service/operations/cherry_pick.go2
-rw-r--r--internal/gitaly/service/operations/merge.go31
-rw-r--r--internal/gitaly/service/operations/revert.go2
3 files changed, 5 insertions, 30 deletions
diff --git a/internal/gitaly/service/operations/cherry_pick.go b/internal/gitaly/service/operations/cherry_pick.go
index a38448c84..22205ba87 100644
--- a/internal/gitaly/service/operations/cherry_pick.go
+++ b/internal/gitaly/service/operations/cherry_pick.go
@@ -99,7 +99,7 @@ func (s *Server) userCherryPick(ctx context.Context, req *gitalypb.UserCherryPic
}
if !branchCreated {
- ancestor, err := s.isAncestor(ctx, req.Repository, oldrev, newrev)
+ ancestor, err := localRepo.IsAncestor(ctx, oldrev.Revision(), newrev.Revision())
if err != nil {
return nil, err
}
diff --git a/internal/gitaly/service/operations/merge.go b/internal/gitaly/service/operations/merge.go
index 98f10a709..603b4706f 100644
--- a/internal/gitaly/service/operations/merge.go
+++ b/internal/gitaly/service/operations/merge.go
@@ -8,10 +8,8 @@ import (
"time"
"github.com/golang/protobuf/ptypes"
- "gitlab.com/gitlab-org/gitaly/internal/command"
"gitlab.com/gitlab-org/gitaly/internal/git"
"gitlab.com/gitlab-org/gitaly/internal/git/localrepo"
- "gitlab.com/gitlab-org/gitaly/internal/git/repository"
"gitlab.com/gitlab-org/gitaly/internal/git2go"
"gitlab.com/gitlab-org/gitaly/internal/helper"
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
@@ -159,7 +157,8 @@ func (s *Server) UserFFBranch(ctx context.Context, in *gitalypb.UserFFBranchRequ
referenceName := git.NewReferenceNameFromBranchName(string(in.Branch))
- revision, err := localrepo.New(s.gitCmdFactory, in.Repository, s.cfg).ResolveRevision(ctx, referenceName.Revision())
+ repo := localrepo.New(s.gitCmdFactory, in.Repository, s.cfg)
+ revision, err := repo.ResolveRevision(ctx, referenceName.Revision())
if err != nil {
return nil, helper.ErrInvalidArgument(err)
}
@@ -169,7 +168,7 @@ func (s *Server) UserFFBranch(ctx context.Context, in *gitalypb.UserFFBranchRequ
return nil, helper.ErrInvalidArgumentf("cannot parse commit ID: %w", err)
}
- ancestor, err := s.isAncestor(ctx, in.Repository, revision, commitID)
+ ancestor, err := repo.IsAncestor(ctx, revision.Revision(), commitID.Revision())
if err != nil {
return nil, err
}
@@ -306,27 +305,3 @@ func (s *Server) UserMergeToRef(ctx context.Context, request *gitalypb.UserMerge
CommitId: mergeOID.String(),
}, nil
}
-
-func (s *Server) isAncestor(ctx context.Context, repo repository.GitRepo, ancestor, descendant git.ObjectID) (bool, error) {
- cmd, err := s.gitCmdFactory.New(ctx, repo, git.SubCmd{
- Name: "merge-base",
- Flags: []git.Option{git.Flag{Name: "--is-ancestor"}},
- Args: []string{ancestor.String(), descendant.String()},
- })
- if err != nil {
- return false, helper.ErrInternalf("isAncestor: %w", err)
- }
- if err := cmd.Wait(); err != nil {
- status, ok := command.ExitStatus(err)
- if !ok {
- return false, helper.ErrInternalf("isAncestor: %w", err)
- }
- // --is-ancestor errors are signaled by a non-zero status that is not 1.
- // https://git-scm.com/docs/git-merge-base#Documentation/git-merge-base.txt---is-ancestor
- if status != 1 {
- return false, helper.ErrInvalidArgumentf("isAncestor: %w", err)
- }
- return false, nil
- }
- return true, nil
-}
diff --git a/internal/gitaly/service/operations/revert.go b/internal/gitaly/service/operations/revert.go
index 8192e5363..fce7ebdfc 100644
--- a/internal/gitaly/service/operations/revert.go
+++ b/internal/gitaly/service/operations/revert.go
@@ -93,7 +93,7 @@ func (s *Server) UserRevert(ctx context.Context, req *gitalypb.UserRevertRequest
}
if !branchCreated {
- ancestor, err := s.isAncestor(ctx, req.Repository, oldrev, newrev)
+ ancestor, err := localRepo.IsAncestor(ctx, oldrev.Revision(), newrev.Revision())
if err != nil {
return nil, err
}