mirror of
https://github.com/go-gitea/gitea.git
synced 2026-11-11 08:12:30 +00:00
fix: git cache (#38763)
1. always use "last commit cache" 2. correctly build the cache key for any input (SafeCacheKey) 3. fix the git note "last commit cache FIXME" and avoid OOM
This commit is contained in:
1 parent
6347a33b34
commit
deccd53c24
26 files changed
+213
-298
No files matched your search
@@ -0,0 +1,27 @@
|
||||
// Copyright 2026 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package git
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"gitea.dev/modules/cache"
|
||||
)
|
||||
|
||||
func makeCommitsCountCacheKey(repo RepositoryFacade, ref RefName) string {
|
||||
return cache.SafeCacheKey("git-commits-count:"+repo.GitRepoManagedID(), ref.String())
|
||||
}
|
||||
|
||||
func RemoveCommitsCountCache(repo RepositoryFacade, ref RefName) {
|
||||
cache.Remove(makeCommitsCountCacheKey(repo, ref))
|
||||
}
|
||||
|
||||
func GetCommitsCountCache(ctx context.Context, repo RepositoryFacade, ref RefName, commit *Commit) (int64, error) {
|
||||
if commit == nil {
|
||||
return 0, nil
|
||||
}
|
||||
return cache.GetInt64(makeCommitsCountCacheKey(repo, ref), func() (int64, error) {
|
||||
return CommitsCountOfCommit(ctx, repo, commit.ID.String())
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user