@ -19,7 +19,7 @@ import (
// GarbageCollectLFSMetaObjectsOptions provides options for GarbageCollectLFSMetaObjects function
type GarbageCollectLFSMetaObjectsOptions struct {
Log ger log . Logger
Log Detail func ( format string , v ... any )
AutoFix bool
OlderThan time . Time
UpdatedLessRecentlyThan time . Time
@ -32,10 +32,12 @@ func GarbageCollectLFSMetaObjects(ctx context.Context, opts GarbageCollectLFSMet
log . Trace ( "Doing: GarbageCollectLFSMetaObjects" )
defer log . Trace ( "Finished: GarbageCollectLFSMetaObjects" )
if opts . LogDetail == nil {
opts . LogDetail = log . Debug
}
if ! setting . LFS . StartServer {
if opts . Logger != nil {
opts . Logger . Info ( "LFS support is disabled" )
}
opts . LogDetail ( "LFS support is disabled" )
return nil
}
@ -54,21 +56,17 @@ func GarbageCollectLFSMetaObjects(ctx context.Context, opts GarbageCollectLFSMet
// GarbageCollectLFSMetaObjectsForRepo garbage collects LFS objects for a specific repository
func GarbageCollectLFSMetaObjectsForRepo ( ctx context . Context , repo * repo_model . Repository , opts GarbageCollectLFSMetaObjectsOptions ) error {
if opts . Logger != nil {
opts . Logger . Info ( "Checking %-v" , repo )
}
opts . LogDetail ( "Checking %-v" , repo )
total , orphaned , collected , deleted := int64 ( 0 ) , 0 , 0 , 0
if opts . Logger != nil {
defer func ( ) {
if orphaned == 0 {
opts . Logger . Info ( "Found %d total LFSMetaObjects in %-v" , total , repo )
} else if ! opts . AutoFix {
opts . Logger . Info ( "Found %d/%d orphaned LFSMetaObjects in %-v" , orphaned , total , repo )
} else {
opts . Logger . Info ( "Collected %d/%d orphaned/%d total LFSMetaObjects in %-v. %d removed from storage." , collected , orphaned , total , repo , deleted )
}
} ( )
}
defer func ( ) {
if orphaned == 0 {
opts . LogDetail ( "Found %d total LFSMetaObjects in %-v" , total , repo )
} else if ! opts . AutoFix {
opts . LogDetail ( "Found %d/%d orphaned LFSMetaObjects in %-v" , orphaned , total , repo )
} else {
opts . LogDetail ( "Collected %d/%d orphaned/%d total LFSMetaObjects in %-v. %d removed from storage." , collected , orphaned , total , repo , deleted )
}
} ( )
gitRepo , err := git . OpenRepository ( ctx , repo . RepoPath ( ) )
if err != nil {
@ -129,9 +127,7 @@ func GarbageCollectLFSMetaObjectsForRepo(ctx context.Context, repo *repo_model.R
} )
if err == errStop {
if opts . Logger != nil {
opts . Logger . Info ( "Processing stopped at %d total LFSMetaObjects in %-v" , total , repo )
}
opts . LogDetail ( "Processing stopped at %d total LFSMetaObjects in %-v" , total , repo )
return nil
} else if err != nil {
return err