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:
authorToon Claes <toon@gitlab.com>2021-01-29 12:59:01 +0300
committerToon Claes <toon@gitlab.com>2021-01-29 12:59:01 +0300
commit0d8e8d6873722723e085d94af57778674db5f46f (patch)
treeea44820f1ba610f62ae4a6a427f16950377149ec
parentba7c34fefc40cf42177e806b6dc516b33d562b79 (diff)
parent6fe052f983e0a5cd031861782698473bddb44b44 (diff)
Merge branch 'ps-git-cmd-factory-repository' into 'master'
Replacement of the git.NewXXX in repository package See merge request gitlab-org/gitaly!3068
-rw-r--r--internal/gitaly/service/repository/archive.go6
-rw-r--r--internal/gitaly/service/repository/calculate_checksum.go4
-rw-r--r--internal/gitaly/service/repository/cleanup.go4
-rw-r--r--internal/gitaly/service/repository/clone_from_pool_internal.go2
-rw-r--r--internal/gitaly/service/repository/commit_graph.go2
-rw-r--r--internal/gitaly/service/repository/config.go4
-rw-r--r--internal/gitaly/service/repository/create.go2
-rw-r--r--internal/gitaly/service/repository/create_bundle.go2
-rw-r--r--internal/gitaly/service/repository/create_from_bundle.go4
-rw-r--r--internal/gitaly/service/repository/create_from_url.go2
-rw-r--r--internal/gitaly/service/repository/create_from_url_test.go4
-rw-r--r--internal/gitaly/service/repository/fetch.go2
-rw-r--r--internal/gitaly/service/repository/fork.go2
-rw-r--r--internal/gitaly/service/repository/fsck.go2
-rw-r--r--internal/gitaly/service/repository/gc.go10
-rw-r--r--internal/gitaly/service/repository/merge_base.go2
-rw-r--r--internal/gitaly/service/repository/midx.go26
-rw-r--r--internal/gitaly/service/repository/optimize.go16
-rw-r--r--internal/gitaly/service/repository/raw_changes.go6
-rw-r--r--internal/gitaly/service/repository/repack.go12
-rw-r--r--internal/gitaly/service/repository/search_files.go4
-rw-r--r--internal/gitaly/service/repository/util.go2
-rw-r--r--internal/gitaly/service/repository/write_ref.go2
23 files changed, 62 insertions, 60 deletions
diff --git a/internal/gitaly/service/repository/archive.go b/internal/gitaly/service/repository/archive.go
index c06c01588..c73f16045 100644
--- a/internal/gitaly/service/repository/archive.go
+++ b/internal/gitaly/service/repository/archive.go
@@ -92,7 +92,7 @@ func (s *server) GetArchive(in *gitalypb.GetArchiveRequest, stream gitalypb.Repo
return err
}
- return handleArchive(archiveParams{
+ return s.handleArchive(archiveParams{
ctx: ctx,
writer: writer,
in: in,
@@ -172,7 +172,7 @@ func findGetArchivePath(ctx context.Context, f *commit.TreeEntryFinder, commitID
return true, nil
}
-func handleArchive(p archiveParams) error {
+func (s *server) handleArchive(p archiveParams) error {
var args []string
pathspecs := make([]string, 0, len(p.exclude)+1)
if !p.in.GetElidePath() {
@@ -207,7 +207,7 @@ func handleArchive(p archiveParams) error {
globals = append(globals, git.ConfigPair{Key: "filter.lfs.smudge", Value: binary})
}
- archiveCommand, err := git.NewCommand(p.ctx, p.in.GetRepository(), globals, git.SubCmd{
+ archiveCommand, err := s.gitCmdFactory.New(p.ctx, p.in.GetRepository(), globals, git.SubCmd{
Name: "archive",
Flags: []git.Option{git.ValueFlag{"--format", p.format}, git.ValueFlag{"--prefix", p.in.GetPrefix() + "/"}},
Args: args,
diff --git a/internal/gitaly/service/repository/calculate_checksum.go b/internal/gitaly/service/repository/calculate_checksum.go
index 54dae6153..3625be46e 100644
--- a/internal/gitaly/service/repository/calculate_checksum.go
+++ b/internal/gitaly/service/repository/calculate_checksum.go
@@ -28,7 +28,7 @@ func (s *server) CalculateChecksum(ctx context.Context, in *gitalypb.CalculateCh
return nil, err
}
- cmd, err := git.NewCommand(ctx, repo, nil, git.SubCmd{Name: "show-ref", Flags: []git.Option{git.Flag{Name: "--head"}}})
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{Name: "show-ref", Flags: []git.Option{git.Flag{Name: "--head"}}})
if err != nil {
if _, ok := status.FromError(err); ok {
return nil, err
@@ -77,7 +77,7 @@ func (s *server) CalculateChecksum(ctx context.Context, in *gitalypb.CalculateCh
func (s *server) isValidRepo(ctx context.Context, repo *gitalypb.Repository) bool {
stdout := &bytes.Buffer{}
- cmd, err := git.NewCommand(ctx, repo, nil,
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil,
git.SubCmd{
Name: "rev-parse",
Flags: []git.Option{
diff --git a/internal/gitaly/service/repository/cleanup.go b/internal/gitaly/service/repository/cleanup.go
index 562ffcf0d..453428b85 100644
--- a/internal/gitaly/service/repository/cleanup.go
+++ b/internal/gitaly/service/repository/cleanup.go
@@ -66,7 +66,7 @@ func (s *server) cleanStaleWorktrees(ctx context.Context, repo *gitalypb.Reposit
}
if info.ModTime().Before(threshold) {
- cmd, err := git.NewCommand(ctx, repo, nil,
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil,
git.SubSubCmd{
Name: "worktree",
Action: "remove",
@@ -89,7 +89,7 @@ func (s *server) cleanStaleWorktrees(ctx context.Context, repo *gitalypb.Reposit
}
func (s *server) cleanDisconnectedWorktrees(ctx context.Context, repo *gitalypb.Repository) error {
- cmd, err := git.NewCommand(ctx, repo, nil,
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil,
git.SubSubCmd{
Name: "worktree",
Action: "prune",
diff --git a/internal/gitaly/service/repository/clone_from_pool_internal.go b/internal/gitaly/service/repository/clone_from_pool_internal.go
index ec36ad11a..181fc3e86 100644
--- a/internal/gitaly/service/repository/clone_from_pool_internal.go
+++ b/internal/gitaly/service/repository/clone_from_pool_internal.go
@@ -124,7 +124,7 @@ func (s *server) cloneFromPool(ctx context.Context, objectPoolRepo *gitalypb.Obj
return fmt.Errorf("expected *gitlaypb.Repository but got %T", repo)
}
- cmd, err := git.NewCommandWithoutRepo(ctx, nil,
+ cmd, err := s.gitCmdFactory.NewWithoutRepo(ctx, nil,
git.SubCmd{
Name: "clone",
Flags: []git.Option{git.Flag{Name: "--bare"}, git.Flag{Name: "--shared"}},
diff --git a/internal/gitaly/service/repository/commit_graph.go b/internal/gitaly/service/repository/commit_graph.go
index 23ce2fe4f..4fd312689 100644
--- a/internal/gitaly/service/repository/commit_graph.go
+++ b/internal/gitaly/service/repository/commit_graph.go
@@ -23,7 +23,7 @@ func (s *server) WriteCommitGraph(ctx context.Context, in *gitalypb.WriteCommitG
}
func (s *server) writeCommitGraph(ctx context.Context, in *gitalypb.WriteCommitGraphRequest) error {
- cmd, err := git.NewCommand(ctx, in.GetRepository(), nil,
+ cmd, err := s.gitCmdFactory.New(ctx, in.GetRepository(), nil,
git.SubSubCmd{
Name: "commit-graph",
Action: "write",
diff --git a/internal/gitaly/service/repository/config.go b/internal/gitaly/service/repository/config.go
index d5fc70808..5eccb7bed 100644
--- a/internal/gitaly/service/repository/config.go
+++ b/internal/gitaly/service/repository/config.go
@@ -11,10 +11,10 @@ import (
"google.golang.org/grpc/status"
)
-func (*server) DeleteConfig(ctx context.Context, req *gitalypb.DeleteConfigRequest) (*gitalypb.DeleteConfigResponse, error) {
+func (s *server) DeleteConfig(ctx context.Context, req *gitalypb.DeleteConfigRequest) (*gitalypb.DeleteConfigResponse, error) {
for _, k := range req.Keys {
// We assume k does not contain any secrets; it is leaked via 'ps'.
- cmd, err := git.NewCommand(ctx, req.Repository, nil, git.SubCmd{
+ cmd, err := s.gitCmdFactory.New(ctx, req.Repository, nil, git.SubCmd{
Name: "config",
Flags: []git.Option{git.ValueFlag{"--unset-all", k}},
})
diff --git a/internal/gitaly/service/repository/create.go b/internal/gitaly/service/repository/create.go
index ca6f201cc..e711e3642 100644
--- a/internal/gitaly/service/repository/create.go
+++ b/internal/gitaly/service/repository/create.go
@@ -21,7 +21,7 @@ func (s *server) CreateRepository(ctx context.Context, req *gitalypb.CreateRepos
}
stderr := &bytes.Buffer{}
- cmd, err := git.NewCommandWithoutRepo(ctx, nil,
+ cmd, err := s.gitCmdFactory.NewWithoutRepo(ctx, nil,
git.SubCmd{
Name: "init",
Flags: []git.Option{
diff --git a/internal/gitaly/service/repository/create_bundle.go b/internal/gitaly/service/repository/create_bundle.go
index 277f95c30..948544d98 100644
--- a/internal/gitaly/service/repository/create_bundle.go
+++ b/internal/gitaly/service/repository/create_bundle.go
@@ -23,7 +23,7 @@ func (s *server) CreateBundle(req *gitalypb.CreateBundleRequest, stream gitalypb
return helper.ErrInternalf("running Cleanup on repository: %w", err)
}
- cmd, err := git.NewCommand(ctx, repo, nil, git.SubSubCmd{
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubSubCmd{
Name: "bundle",
Action: "create",
Flags: []git.Option{git.OutputToStdout, git.Flag{Name: "--all"}},
diff --git a/internal/gitaly/service/repository/create_from_bundle.go b/internal/gitaly/service/repository/create_from_bundle.go
index 13c8c41b5..75bd9bfec 100644
--- a/internal/gitaly/service/repository/create_from_bundle.go
+++ b/internal/gitaly/service/repository/create_from_bundle.go
@@ -71,7 +71,7 @@ func (s *server) CreateRepositoryFromBundle(stream gitalypb.RepositoryService_Cr
}
stderr := bytes.Buffer{}
- cmd, err := git.NewCommandWithoutRepo(ctx, nil,
+ cmd, err := s.gitCmdFactory.NewWithoutRepo(ctx, nil,
git.SubCmd{
Name: "clone",
Flags: []git.Option{
@@ -94,7 +94,7 @@ func (s *server) CreateRepositoryFromBundle(stream gitalypb.RepositoryService_Cr
// We do a fetch to get all refs including keep-around refs
stderr.Reset()
- cmd, err = git.NewCommandWithoutRepo(ctx,
+ cmd, err = s.gitCmdFactory.NewWithoutRepo(ctx,
[]git.GlobalOption{git.ValueFlag{Name: "-C", Value: repoPath}},
git.SubCmd{
Name: "fetch",
diff --git a/internal/gitaly/service/repository/create_from_url.go b/internal/gitaly/service/repository/create_from_url.go
index 10948c86e..8b1d07dbd 100644
--- a/internal/gitaly/service/repository/create_from_url.go
+++ b/internal/gitaly/service/repository/create_from_url.go
@@ -47,7 +47,7 @@ func (s *server) cloneFromURLCommand(ctx context.Context, repo *gitalypb.Reposit
globalFlags = append(globalFlags, git.ConfigPair{Key: "http.extraHeader", Value: authHeader})
}
- return git.NewCommandWithoutRepo(ctx, globalFlags,
+ return s.gitCmdFactory.NewWithoutRepo(ctx, globalFlags,
git.SubCmd{
Name: "clone",
Flags: cloneFlags,
diff --git a/internal/gitaly/service/repository/create_from_url_test.go b/internal/gitaly/service/repository/create_from_url_test.go
index 9ac97ebcf..c7b38df4c 100644
--- a/internal/gitaly/service/repository/create_from_url_test.go
+++ b/internal/gitaly/service/repository/create_from_url_test.go
@@ -10,6 +10,7 @@ import (
"testing"
"github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitaly/internal/git"
"gitlab.com/gitlab-org/gitaly/internal/gitaly/config"
"gitlab.com/gitlab-org/gitaly/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
@@ -72,7 +73,8 @@ func TestCloneRepositoryFromUrlCommand(t *testing.T) {
repositoryFullPath := "full/path/to/repository"
url := fmt.Sprintf("https://%s@www.example.com/secretrepo.git", userInfo)
- s := &server{cfg: config.Config}
+ cfg := config.Config
+ s := server{cfg: cfg, gitCmdFactory: git.NewExecCommandFactory(cfg)}
cmd, err := s.cloneFromURLCommand(ctx, &gitalypb.Repository{}, url, repositoryFullPath, nil)
require.NoError(t, err)
diff --git a/internal/gitaly/service/repository/fetch.go b/internal/gitaly/service/repository/fetch.go
index 99aa18181..0a10f31a2 100644
--- a/internal/gitaly/service/repository/fetch.go
+++ b/internal/gitaly/service/repository/fetch.go
@@ -76,7 +76,7 @@ func (s *server) FetchSourceBranch(ctx context.Context, req *gitalypb.FetchSourc
return nil, err
}
- cmd, err := git.NewCommand(ctx, req.Repository, nil,
+ cmd, err := s.gitCmdFactory.New(ctx, req.Repository, nil,
git.SubCmd{
Name: "fetch",
Args: []string{gitalyssh.GitalyInternalURL, sourceOid.String()},
diff --git a/internal/gitaly/service/repository/fork.go b/internal/gitaly/service/repository/fork.go
index 46c96b7fb..ce1927ed4 100644
--- a/internal/gitaly/service/repository/fork.go
+++ b/internal/gitaly/service/repository/fork.go
@@ -53,7 +53,7 @@ func (s *server) CreateFork(ctx context.Context, req *gitalypb.CreateForkRequest
return nil, err
}
- cmd, err := git.NewCommandWithoutRepo(ctx, nil,
+ cmd, err := s.gitCmdFactory.NewWithoutRepo(ctx, nil,
git.SubCmd{
Name: "clone",
Flags: []git.Option{
diff --git a/internal/gitaly/service/repository/fsck.go b/internal/gitaly/service/repository/fsck.go
index f53ff2812..b7f1415ab 100644
--- a/internal/gitaly/service/repository/fsck.go
+++ b/internal/gitaly/service/repository/fsck.go
@@ -13,7 +13,7 @@ func (s *server) Fsck(ctx context.Context, req *gitalypb.FsckRequest) (*gitalypb
repo := req.GetRepository()
- cmd, err := git.NewCommand(ctx, repo, nil,
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil,
git.SubCmd{Name: "fsck"},
git.WithStdout(&stdout),
git.WithStderr(&stderr),
diff --git a/internal/gitaly/service/repository/gc.go b/internal/gitaly/service/repository/gc.go
index c722f6661..86a9119a3 100644
--- a/internal/gitaly/service/repository/gc.go
+++ b/internal/gitaly/service/repository/gc.go
@@ -43,7 +43,7 @@ func (s *server) GarbageCollect(ctx context.Context, in *gitalypb.GarbageCollect
return nil, err
}
- if err := configureCommitGraph(ctx, in); err != nil {
+ if err := s.configureCommitGraph(ctx, in); err != nil {
return nil, err
}
@@ -70,7 +70,7 @@ func (s *server) gc(ctx context.Context, in *gitalypb.GarbageCollectRequest) err
flags = append(flags, git.Flag{Name: "--prune=30.minutes.ago"})
}
- cmd, err := git.NewCommand(ctx, in.GetRepository(), args,
+ cmd, err := s.gitCmdFactory.New(ctx, in.GetRepository(), args,
git.SubCmd{Name: "gc", Flags: flags},
)
@@ -92,8 +92,8 @@ func (s *server) gc(ctx context.Context, in *gitalypb.GarbageCollectRequest) err
return nil
}
-func configureCommitGraph(ctx context.Context, in *gitalypb.GarbageCollectRequest) error {
- cmd, err := git.NewCommand(ctx, in.GetRepository(), nil, git.SubCmd{
+func (s *server) configureCommitGraph(ctx context.Context, in *gitalypb.GarbageCollectRequest) error {
+ cmd, err := s.gitCmdFactory.New(ctx, in.GetRepository(), nil, git.SubCmd{
Name: "config",
Flags: []git.Option{
git.ConfigPair{Key: "core.commitGraph", Value: "true"},
@@ -177,7 +177,7 @@ func (s *server) fixRef(ctx context.Context, repo *gitalypb.Repository, batch ca
}
// The name is a valid sha, recreate the ref
- cmd, err := git.NewCommand(ctx, repo, nil,
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil,
git.SubCmd{
Name: "update-ref",
Args: []string{name, sha},
diff --git a/internal/gitaly/service/repository/merge_base.go b/internal/gitaly/service/repository/merge_base.go
index 0ae6f4198..290851140 100644
--- a/internal/gitaly/service/repository/merge_base.go
+++ b/internal/gitaly/service/repository/merge_base.go
@@ -21,7 +21,7 @@ func (s *server) FindMergeBase(ctx context.Context, req *gitalypb.FindMergeBaseR
return nil, status.Errorf(codes.InvalidArgument, "FindMergeBase: at least 2 revisions are required")
}
- cmd, err := git.NewCommand(ctx, req.GetRepository(), nil,
+ cmd, err := s.gitCmdFactory.New(ctx, req.GetRepository(), nil,
git.SubCmd{
Name: "merge-base",
Args: revisions,
diff --git a/internal/gitaly/service/repository/midx.go b/internal/gitaly/service/repository/midx.go
index f9d5494ce..5219151ed 100644
--- a/internal/gitaly/service/repository/midx.go
+++ b/internal/gitaly/service/repository/midx.go
@@ -23,11 +23,11 @@ const (
func (s *server) MidxRepack(ctx context.Context, in *gitalypb.MidxRepackRequest) (*gitalypb.MidxRepackResponse, error) {
repo := in.GetRepository()
- if err := midxSetConfig(ctx, repo); err != nil {
+ if err := s.midxSetConfig(ctx, repo); err != nil {
return nil, err
}
- for _, cmd := range []midxSubCommand{midxWrite, midxExpire, s.midxRepack} {
+ for _, cmd := range []midxSubCommand{s.midxWrite, s.midxExpire, s.midxRepack} {
if err := s.safeMidxCommand(ctx, repo, cmd); err != nil {
if git.IsInvalidArgErr(err) {
return nil, helper.ErrInvalidArgumentf("MidxRepack: %w", err)
@@ -53,8 +53,8 @@ func (s *server) safeMidxCommand(ctx context.Context, repo repository.GitRepo, c
return s.midxEnsureExists(ctx, repo)
}
-func midxSetConfig(ctx context.Context, repo repository.GitRepo) error {
- cmd, err := git.NewCommand(ctx, repo, nil, git.SubCmd{
+func (s *server) midxSetConfig(ctx context.Context, repo repository.GitRepo) error {
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{
Name: "config",
Flags: []git.Option{
git.ConfigPair{
@@ -74,8 +74,8 @@ func midxSetConfig(ctx context.Context, repo repository.GitRepo) error {
return nil
}
-func midxWrite(ctx context.Context, repo repository.GitRepo) error {
- cmd, err := git.NewCommand(ctx, repo, nil,
+func (s *server) midxWrite(ctx context.Context, repo repository.GitRepo) error {
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil,
git.SubSubCmd{
Name: "multi-pack-index",
Action: "write",
@@ -96,7 +96,7 @@ func midxWrite(ctx context.Context, repo repository.GitRepo) error {
func (s *server) midxEnsureExists(ctx context.Context, repo repository.GitRepo) error {
ctxlogger := ctxlogrus.Extract(ctx)
- if err := midxVerify(ctx, repo); err != nil {
+ if err := s.midxVerify(ctx, repo); err != nil {
ctxlogger.
WithError(err).
WithFields(log.Fields{"verify_success": false}).
@@ -108,10 +108,10 @@ func (s *server) midxEnsureExists(ctx context.Context, repo repository.GitRepo)
return nil
}
-func midxVerify(ctx context.Context, repo repository.GitRepo) error {
+func (s *server) midxVerify(ctx context.Context, repo repository.GitRepo) error {
ctxlogger := ctxlogrus.Extract(ctx)
- cmd, err := git.NewCommand(ctx, repo, nil,
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil,
git.SubSubCmd{
Name: "multi-pack-index",
Action: "verify",
@@ -143,11 +143,11 @@ func (s *server) midxRewrite(ctx context.Context, repo repository.GitRepo) error
return err
}
- return midxWrite(ctx, repo)
+ return s.midxWrite(ctx, repo)
}
-func midxExpire(ctx context.Context, repo repository.GitRepo) error {
- cmd, err := git.NewCommand(ctx, repo, nil,
+func (s *server) midxExpire(ctx context.Context, repo repository.GitRepo) error {
+ cmd, err := s.gitCmdFactory.New(ctx, repo, nil,
git.SubSubCmd{
Name: "multi-pack-index",
Action: "expire",
@@ -188,7 +188,7 @@ func (s *server) midxRepack(ctx context.Context, repo repository.GitRepo) error
// - repack.useDeltaIslands
// will only be respected if git version is >=2.28.0.
// Bitmap index 'repack.writeBitmaps' is not yet supported.
- cmd, err := git.NewCommand(ctx, repo,
+ cmd, err := s.gitCmdFactory.New(ctx, repo,
repackConfig(ctx, false),
git.SubSubCmd{
Name: "multi-pack-index",
diff --git a/internal/gitaly/service/repository/optimize.go b/internal/gitaly/service/repository/optimize.go
index 6e323099f..f8495e88a 100644
--- a/internal/gitaly/service/repository/optimize.go
+++ b/internal/gitaly/service/repository/optimize.go
@@ -174,20 +174,20 @@ func (s *server) validateOptimizeRepositoryRequest(in *gitalypb.OptimizeReposito
}
func (s *server) unsetAllConfigsByRegexp(ctx context.Context, repository *gitalypb.Repository, regexp string) error {
- keys, err := getConfigKeys(ctx, repository, regexp)
+ keys, err := s.getConfigKeys(ctx, repository, regexp)
if err != nil {
return fmt.Errorf("get config keys: %w", err)
}
- if err := unsetConfigKeys(ctx, repository, keys); err != nil {
+ if err := s.unsetConfigKeys(ctx, repository, keys); err != nil {
return fmt.Errorf("unset all keys: %w", err)
}
return nil
}
-func getConfigKeys(ctx context.Context, repository *gitalypb.Repository, regexp string) ([]string, error) {
- cmd, err := git.NewCommand(ctx, repository, nil, git.SubCmd{
+func (s *server) getConfigKeys(ctx context.Context, repository *gitalypb.Repository, regexp string) ([]string, error) {
+ cmd, err := s.gitCmdFactory.New(ctx, repository, nil, git.SubCmd{
Name: "config",
Flags: []git.Option{
git.Flag{Name: "--name-only"},
@@ -232,9 +232,9 @@ func parseConfigKeys(reader io.Reader) ([]string, error) {
return keys, nil
}
-func unsetConfigKeys(ctx context.Context, repository *gitalypb.Repository, names []string) error {
+func (s *server) unsetConfigKeys(ctx context.Context, repository *gitalypb.Repository, names []string) error {
for _, name := range names {
- if err := unsetAll(ctx, repository, name); err != nil {
+ if err := s.unsetAll(ctx, repository, name); err != nil {
return fmt.Errorf("unset all: %w", err)
}
}
@@ -242,12 +242,12 @@ func unsetConfigKeys(ctx context.Context, repository *gitalypb.Repository, names
return nil
}
-func unsetAll(ctx context.Context, repository *gitalypb.Repository, name string) error {
+func (s *server) unsetAll(ctx context.Context, repository *gitalypb.Repository, name string) error {
if strings.TrimSpace(name) == "" {
return nil
}
- cmd, err := git.NewCommand(ctx, repository, nil, git.SubCmd{
+ cmd, err := s.gitCmdFactory.New(ctx, repository, nil, git.SubCmd{
Name: "config",
Flags: []git.Option{git.ValueFlag{Name: "--unset-all", Value: name}},
})
diff --git a/internal/gitaly/service/repository/raw_changes.go b/internal/gitaly/service/repository/raw_changes.go
index b9bbd8fe9..55f5af0fb 100644
--- a/internal/gitaly/service/repository/raw_changes.go
+++ b/internal/gitaly/service/repository/raw_changes.go
@@ -30,7 +30,7 @@ func (s *server) GetRawChanges(req *gitalypb.GetRawChangesRequest, stream gitaly
return helper.ErrInvalidArgument(err)
}
- if err := getRawChanges(stream, repo, batch, req.GetFromRevision(), req.GetToRevision()); err != nil {
+ if err := s.getRawChanges(stream, repo, batch, req.GetFromRevision(), req.GetToRevision()); err != nil {
return helper.ErrInternal(err)
}
@@ -53,7 +53,7 @@ func validateRawChangesRequest(ctx context.Context, req *gitalypb.GetRawChangesR
return nil
}
-func getRawChanges(stream gitalypb.RepositoryService_GetRawChangesServer, repo *gitalypb.Repository, batch catfile.Batch, from, to string) error {
+func (s *server) getRawChanges(stream gitalypb.RepositoryService_GetRawChangesServer, repo *gitalypb.Repository, batch catfile.Batch, from, to string) error {
if git.ObjectID(to).IsZeroOID() {
return nil
}
@@ -64,7 +64,7 @@ func getRawChanges(stream gitalypb.RepositoryService_GetRawChangesServer, repo *
ctx := stream.Context()
- diffCmd, err := git.NewCommand(ctx, repo, nil, git.SubCmd{
+ diffCmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{
Name: "diff",
Flags: []git.Option{git.Flag{Name: "--raw"}, git.Flag{Name: "-z"}},
Args: []string{from, to},
diff --git a/internal/gitaly/service/repository/repack.go b/internal/gitaly/service/repository/repack.go
index 939d0b8c7..53d04d5e1 100644
--- a/internal/gitaly/service/repository/repack.go
+++ b/internal/gitaly/service/repository/repack.go
@@ -27,27 +27,27 @@ func init() {
prometheus.Register(repackCounter)
}
-func (*server) RepackFull(ctx context.Context, in *gitalypb.RepackFullRequest) (*gitalypb.RepackFullResponse, error) {
+func (s *server) RepackFull(ctx context.Context, in *gitalypb.RepackFullRequest) (*gitalypb.RepackFullResponse, error) {
options := []git.Option{
git.Flag{Name: "-A"},
git.Flag{Name: "--pack-kept-objects"},
git.Flag{Name: "-l"},
}
- if err := repackCommand(ctx, in.GetRepository(), in.GetCreateBitmap(), options...); err != nil {
+ if err := s.repackCommand(ctx, in.GetRepository(), in.GetCreateBitmap(), options...); err != nil {
return nil, err
}
return &gitalypb.RepackFullResponse{}, nil
}
-func (*server) RepackIncremental(ctx context.Context, in *gitalypb.RepackIncrementalRequest) (*gitalypb.RepackIncrementalResponse, error) {
- if err := repackCommand(ctx, in.GetRepository(), false); err != nil {
+func (s *server) RepackIncremental(ctx context.Context, in *gitalypb.RepackIncrementalRequest) (*gitalypb.RepackIncrementalResponse, error) {
+ if err := s.repackCommand(ctx, in.GetRepository(), false); err != nil {
return nil, err
}
return &gitalypb.RepackIncrementalResponse{}, nil
}
-func repackCommand(ctx context.Context, repo repository.GitRepo, bitmap bool, args ...git.Option) error {
- cmd, err := git.NewCommand(ctx, repo,
+func (s *server) repackCommand(ctx context.Context, repo repository.GitRepo, bitmap bool, args ...git.Option) error {
+ cmd, err := s.gitCmdFactory.New(ctx, repo,
repackConfig(ctx, bitmap), // global configs
git.SubCmd{
Name: "repack",
diff --git a/internal/gitaly/service/repository/search_files.go b/internal/gitaly/service/repository/search_files.go
index 350394cd6..3815f56ec 100644
--- a/internal/gitaly/service/repository/search_files.go
+++ b/internal/gitaly/service/repository/search_files.go
@@ -39,7 +39,7 @@ func (s *server) SearchFilesByContent(req *gitalypb.SearchFilesByContentRequest,
}
ctx := stream.Context()
- cmd, err := git.NewCommand(ctx, repo,
+ cmd, err := s.gitCmdFactory.New(ctx, repo,
nil,
git.SubCmd{Name: "grep", Flags: []git.Option{
git.Flag{Name: "--ignore-case"},
@@ -127,7 +127,7 @@ func (s *server) SearchFilesByName(req *gitalypb.SearchFilesByNameRequest, strea
}
ctx := stream.Context()
- cmd, err := git.NewCommand(
+ cmd, err := s.gitCmdFactory.New(
ctx,
repo,
nil,
diff --git a/internal/gitaly/service/repository/util.go b/internal/gitaly/service/repository/util.go
index 7514beecf..1218696f2 100644
--- a/internal/gitaly/service/repository/util.go
+++ b/internal/gitaly/service/repository/util.go
@@ -9,7 +9,7 @@ import (
)
func (s *server) removeOriginInRepo(ctx context.Context, repository *gitalypb.Repository) error {
- cmd, err := git.NewCommand(ctx, repository, nil, git.SubCmd{Name: "remote", Args: []string{"remove", "origin"}}, git.WithRefTxHook(ctx, repository, s.cfg))
+ cmd, err := s.gitCmdFactory.New(ctx, repository, nil, git.SubCmd{Name: "remote", Args: []string{"remove", "origin"}}, git.WithRefTxHook(ctx, repository, s.cfg))
if err != nil {
return fmt.Errorf("remote cmd start: %v", err)
diff --git a/internal/gitaly/service/repository/write_ref.go b/internal/gitaly/service/repository/write_ref.go
index 17366f551..f35381ccf 100644
--- a/internal/gitaly/service/repository/write_ref.go
+++ b/internal/gitaly/service/repository/write_ref.go
@@ -31,7 +31,7 @@ func (s *server) writeRef(ctx context.Context, req *gitalypb.WriteRefRequest) er
}
func (s *server) updateSymbolicRef(ctx context.Context, req *gitalypb.WriteRefRequest) error {
- cmd, err := git.NewCommand(ctx, req.GetRepository(), nil,
+ cmd, err := s.gitCmdFactory.New(ctx, req.GetRepository(), nil,
git.SubCmd{
Name: "symbolic-ref",
Args: []string{string(req.GetRef()), string(req.GetRevision())},