summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--models/repo.go7
-rw-r--r--modules/repository/check.go11
2 files changed, 13 insertions, 5 deletions
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
}
diff --git a/modules/repository/check.go b/modules/repository/check.go
index d13ddbb0b0..0485e9e83a 100644
--- a/modules/repository/check.go
+++ b/modules/repository/check.go
@@ -91,6 +91,17 @@ func GitGcRepos(ctx context.Context, timeout time.Duration, args ...string) erro
}
return fmt.Errorf("Repository garbage collection failed in repo: %s: Error: %v", repo.FullName(), err)
}
+
+ // Now update the size of the repository
+ if err := repo.UpdateSize(models.DefaultDBContext()); err != nil {
+ log.Error("Updating size as part of garbage collection failed for %v. Stdout: %s\nError: %v", repo, stdout, err)
+ desc := fmt.Sprintf("Updating size as part of garbage collection failed for %s. Stdout: %s\nError: %v", repo.RepoPath(), stdout, err)
+ if err = models.CreateRepositoryNotice(desc); err != nil {
+ log.Error("CreateRepositoryNotice: %v", err)
+ }
+ return fmt.Errorf("Updating size as part of garbage collection failed in repo: %s: Error: %v", repo.FullName(), err)
+ }
+
return nil
},
); err != nil {