From 82d1a7fb17ea549b17ef30711e0fa7e136acb880 Mon Sep 17 00:00:00 2001 From: zeripath Date: Sun, 28 Mar 2021 04:56:28 +0100 Subject: Update repository size on cron gc task (#15177) git gc cron could change the size of the repository therefore we should update the size of the repo stored in our database. Also significantly improve the efficiency of counting lfs associated with the repository --- models/repo.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'models') diff --git a/models/repo.go b/models/repo.go index c807916ddc..7f2ec1f742 100644 --- a/models/repo.go +++ b/models/repo.go @@ -740,15 +740,12 @@ func (repo *Repository) updateSize(e Engine) error { return fmt.Errorf("updateSize: %v", err) } - objs, err := repo.GetLFSMetaObjects(-1, 0) + lfsSize, err := e.Where("repository_id = ?", repo.ID).SumInt(new(LFSMetaObject), "size") if err != nil { return fmt.Errorf("updateSize: GetLFSMetaObjects: %v", err) } - for _, obj := range objs { - size += obj.Size - } - repo.Size = size + repo.Size = size + lfsSize _, err = e.ID(repo.ID).Cols("size").Update(repo) return err } -- cgit v1.2.3