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:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2021-01-06 12:16:55 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-01-06 12:56:05 +0300
commit3c13f2470e028ee41981eba0eb32a5b0817be70f (patch)
tree999efdb76c9e0807fe1a8e5b439edd12efd8d190
parentced7db2422eae476589608386842fc3fc63c33b7 (diff)
git: Convert `UploadPackFilterConfig()` to use command options
Now that it's possiblbe to specify command-specific options which always get applied, let's convert the `UploadPackFilterConfig()` fucniton and move it into the "upload-pack" `gitCommand` structure.
-rw-r--r--internal/git/subcommand.go6
-rw-r--r--internal/git/uploadpack.go12
-rw-r--r--internal/gitaly/service/smarthttp/inforefs.go10
-rw-r--r--internal/gitaly/service/smarthttp/upload_pack.go6
-rw-r--r--internal/gitaly/service/ssh/upload_pack.go6
5 files changed, 15 insertions, 25 deletions
diff --git a/internal/git/subcommand.go b/internal/git/subcommand.go
index 06cd5f291..657b15815 100644
--- a/internal/git/subcommand.go
+++ b/internal/git/subcommand.go
@@ -154,6 +154,12 @@ var gitCommands = map[string]gitCommand{
},
"upload-pack": gitCommand{
flags: scReadOnly | scGeneratesPackfiles,
+ opts: []GlobalOption{
+ ConfigPair{Key: "uploadpack.allowFilter", Value: "true"},
+ // Enables the capability to request individual SHA1's from the
+ // remote repo.
+ ConfigPair{Key: "uploadpack.allowAnySHA1InWant", Value: "true"},
+ },
},
"worktree": gitCommand{
flags: 0,
diff --git a/internal/git/uploadpack.go b/internal/git/uploadpack.go
deleted file mode 100644
index 0a1c44948..000000000
--- a/internal/git/uploadpack.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package git
-
-// UploadPackFilterConfig confines config options that are required to allow
-// partial-clone filters.
-func UploadPackFilterConfig() []GlobalOption {
- return []GlobalOption{
- ConfigPair{Key: "uploadpack.allowFilter", Value: "true"},
- // Enables the capability to request individual SHA1's from the
- // remote repo.
- ConfigPair{Key: "uploadpack.allowAnySHA1InWant", Value: "true"},
- }
-}
diff --git a/internal/gitaly/service/smarthttp/inforefs.go b/internal/gitaly/service/smarthttp/inforefs.go
index 9d2c2edb1..e3afd2481 100644
--- a/internal/gitaly/service/smarthttp/inforefs.go
+++ b/internal/gitaly/service/smarthttp/inforefs.go
@@ -53,13 +53,9 @@ func (s *server) handleInfoRefs(ctx context.Context, service string, req *gitaly
cmdOpts = append(cmdOpts, git.WithRefTxHook(ctx, req.Repository, config.Config))
}
- var globalOpts []git.GlobalOption
- if service == "upload-pack" {
- globalOpts = append(globalOpts, git.UploadPackFilterConfig()...)
- }
-
- for _, o := range req.GitConfigOptions {
- globalOpts = append(globalOpts, git.ValueFlag{"-c", o})
+ globalOpts := make([]git.GlobalOption, len(req.GitConfigOptions))
+ for i, o := range req.GitConfigOptions {
+ globalOpts[i] = git.ValueFlag{"-c", o}
}
cmd, err := git.SafeBareCmd(ctx, nil, globalOpts, git.SubCmd{
diff --git a/internal/gitaly/service/smarthttp/upload_pack.go b/internal/gitaly/service/smarthttp/upload_pack.go
index cec97e4fe..6303e5e89 100644
--- a/internal/gitaly/service/smarthttp/upload_pack.go
+++ b/internal/gitaly/service/smarthttp/upload_pack.go
@@ -71,10 +71,10 @@ func (s *server) PostUploadPack(stream gitalypb.SmartHTTPService_PostUploadPackS
}
git.WarnIfTooManyBitmaps(ctx, s.locator, req.GetRepository().GetStorageName(), repoPath)
- globalOpts := git.UploadPackFilterConfig()
- for _, o := range req.GitConfigOptions {
- globalOpts = append(globalOpts, git.ValueFlag{"-c", o})
+ globalOpts := make([]git.GlobalOption, len(req.GitConfigOptions))
+ for i, o := range req.GitConfigOptions {
+ globalOpts[i] = git.ValueFlag{"-c", o}
}
cmd, err := git.SafeBareCmd(ctx, nil, globalOpts, git.SubCmd{
diff --git a/internal/gitaly/service/ssh/upload_pack.go b/internal/gitaly/service/ssh/upload_pack.go
index 3eb8a451e..e81060cd2 100644
--- a/internal/gitaly/service/ssh/upload_pack.go
+++ b/internal/gitaly/service/ssh/upload_pack.go
@@ -78,9 +78,9 @@ func (s *server) sshUploadPack(stream gitalypb.SSHService_SSHUploadPackServer, r
git.WarnIfTooManyBitmaps(ctx, s.locator, req.GetRepository().StorageName, repoPath)
- globalOpts := git.UploadPackFilterConfig()
- for _, o := range req.GitConfigOptions {
- globalOpts = append(globalOpts, git.ValueFlag{"-c", o})
+ globalOpts := make([]git.GlobalOption, len(req.GitConfigOptions))
+ for i, o := range req.GitConfigOptions {
+ globalOpts[i] = git.ValueFlag{"-c", o}
}
pr, pw := io.Pipe()