From 564c120c7f452e6ae87558f896a291c5601d9d79 Mon Sep 17 00:00:00 2001 From: J23 Date: Fri, 27 Dec 2024 10:35:31 +0800 Subject: [PATCH] ssh: fix --sparse mode --- pkg/serve/sshserver/command_push.go | 4 ++-- pkg/serve/sshserver/session.go | 2 +- pkg/transport/ssh/metadata.go | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/serve/sshserver/command_push.go b/pkg/serve/sshserver/command_push.go index 59f8209..cc88082 100644 --- a/pkg/serve/sshserver/command_push.go +++ b/pkg/serve/sshserver/command_push.go @@ -196,7 +196,7 @@ func (s *Server) TagPush(e *Session, tagName string, oldRev, newRev plumbing.Has Language: e.Getenv("LANG"), } if tag != nil && tag.Hash != command.OldRev { - return e.ExitFormat(409, e.W("tag is updated, please update and try again")) //nolint:govet + return e.ExitFormat(409, "%s", e.W("tag is updated, please update and try again")) //nolint:govet } command.UpdateStats(e.Getenv("ZETA_OBJECTS_STATS")) rr, err := s.open(e) @@ -228,7 +228,7 @@ func (s *Server) BranchPush(e *Session, branchName string, oldRev, newRev plumbi Language: e.Getenv("LANG"), } if oldBranch != nil && oldBranch.Hash != command.OldRev { - return e.ExitFormat(409, e.W("branch is updated, please update and try again")) //nolint:govet + return e.ExitFormat(409, "%s", e.W("branch is updated, please update and try again")) //nolint:govet } command.UpdateStats(e.Getenv("ZETA_OBJECTS_STATS")) rr, err := s.open(e) diff --git a/pkg/serve/sshserver/session.go b/pkg/serve/sshserver/session.go index fa8dee4..fd4b7d3 100644 --- a/pkg/serve/sshserver/session.go +++ b/pkg/serve/sshserver/session.go @@ -178,7 +178,7 @@ func (e *Session) ExitError(err error) int { return 409 default: logrus.Errorf("access %s/%s internal server error: %v", e.NamespacePath, e.RepoPath, err) - e.WriteError(e.W("internal server error")) //nolint:govet + e.WriteError("%s", e.W("internal server error")) //nolint:govet } return 500 } diff --git a/pkg/transport/ssh/metadata.go b/pkg/transport/ssh/metadata.go index 0ade039..cd9e006 100644 --- a/pkg/transport/ssh/metadata.go +++ b/pkg/transport/ssh/metadata.go @@ -77,6 +77,9 @@ func (c *client) FetchMetadata(ctx context.Context, target plumbing.Hash, opts * if opts.Depth != 0 { psArgs = append(psArgs, "--depth="+strconv.Itoa(opts.Depth)) } + if len(opts.Sparses) != 0 { + psArgs = append(psArgs, "--sparse") + } commandArgs := strings.Join(psArgs, " ") cmd, err := c.NewBaseCommand(ctx) if err != nil {