summaryrefslogtreecommitdiffstats
path: root/modules/doctor
diff options
context:
space:
mode:
Diffstat (limited to 'modules/doctor')
-rw-r--r--modules/doctor/lfs.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/modules/doctor/lfs.go b/modules/doctor/lfs.go
index 410ed5a9a5..64ee4c40bf 100644
--- a/modules/doctor/lfs.go
+++ b/modules/doctor/lfs.go
@@ -6,6 +6,7 @@ package doctor
import (
"context"
"fmt"
+ "time"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
@@ -29,7 +30,20 @@ func garbageCollectLFSCheck(ctx context.Context, logger log.Logger, autofix bool
return fmt.Errorf("LFS support is disabled")
}
- if err := repository.GarbageCollectLFSMetaObjects(ctx, logger, autofix); err != nil {
+ if err := repository.GarbageCollectLFSMetaObjects(ctx, repository.GarbageCollectLFSMetaObjectsOptions{
+ Logger: logger,
+ AutoFix: autofix,
+ // Only attempt to garbage collect lfs meta objects older than a week as the order of git lfs upload
+ // and git object upload is not necessarily guaranteed. It's possible to imagine a situation whereby
+ // an LFS object is uploaded but the git branch is not uploaded immediately, or there are some rapid
+ // changes in new branches that might lead to lfs objects becoming temporarily unassociated with git
+ // objects.
+ //
+ // It is likely that a week is potentially excessive but it should definitely be enough that any
+ // unassociated LFS object is genuinely unassociated.
+ OlderThan: time.Now().Add(-24 * time.Hour * 7),
+ // We don't set the UpdatedLessRecentlyThan because we want to do a full GC
+ }); err != nil {
return err
}