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:
Diffstat (limited to 'internal/gitaly/service/repository/size.go')
-rw-r--r--internal/gitaly/service/repository/size.go22
1 files changed, 18 insertions, 4 deletions
diff --git a/internal/gitaly/service/repository/size.go b/internal/gitaly/service/repository/size.go
index 261bb0417..94cf5a7c8 100644
--- a/internal/gitaly/service/repository/size.go
+++ b/internal/gitaly/service/repository/size.go
@@ -10,16 +10,30 @@ import (
"github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus"
"gitlab.com/gitlab-org/gitaly/v14/internal/command"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/metadata/featureflag"
"gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
)
func (s *server) RepositorySize(ctx context.Context, in *gitalypb.RepositorySizeRequest) (*gitalypb.RepositorySizeResponse, error) {
- path, err := s.locator.GetPath(in.Repository)
- if err != nil {
- return nil, err
+ repo := s.localrepo(in.GetRepository())
+ var size int64
+ var err error
+
+ if featureflag.RevlistForRepoSize.IsEnabled(ctx) {
+ size, err = repo.Size(ctx)
+ if err != nil {
+ return nil, err
+ }
+ size = size / 1024
+ } else {
+ path, err := repo.Path()
+ if err != nil {
+ return nil, err
+ }
+ size = getPathSize(ctx, path)
}
- return &gitalypb.RepositorySizeResponse{Size: getPathSize(ctx, path)}, nil
+ return &gitalypb.RepositorySizeResponse{Size: size}, nil
}
func (s *server) GetObjectDirectorySize(ctx context.Context, in *gitalypb.GetObjectDirectorySizeRequest) (*gitalypb.GetObjectDirectorySizeResponse, error) {