aboutsummaryrefslogtreecommitdiffstats
path: root/models/repo.go
diff options
context:
space:
mode:
authorAllen Wild <aswild@users.noreply.github.com>2018-03-27 10:13:20 -0400
committerLunny Xiao <xiaolunwen@gmail.com>2018-03-27 22:13:20 +0800
commit15c6bb500b8b395ab7ca61498f5415b9f583213c (patch)
tree5832b47e529ea73d3421161ed17dcebdb29f721b /models/repo.go
parent321cc2a3d0f267f8b0f5bb4365572636f1ce0443 (diff)
downloadgitea-15c6bb500b8b395ab7ca61498f5415b9f583213c.tar.gz
gitea-15c6bb500b8b395ab7ca61498f5415b9f583213c.zip
Add repository setting to enable/disable health checks (#3607)
New Feature: * Repository struct field for IsFsckEnabled (default true of course) * Admin Settings section on repo options page, accessible only by admin users Possible Enhancements: * There's no way to force running health checks on all repos regardless of their IsFsckEnabled setting. This would be useful if there were an admin API or dashboard button to run fsck immediately. Issue: https://github.com/go-gitea/gitea/issues/1712 Signed-off-by: Allen Wild <allenwild93@gmail.com>
Diffstat (limited to 'models/repo.go')
-rw-r--r--models/repo.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/models/repo.go b/models/repo.go
index e9b3307d9a..300bdbe875 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -198,6 +198,7 @@ type Repository struct {
BaseRepo *Repository `xorm:"-"`
Size int64 `xorm:"NOT NULL DEFAULT 0"`
IndexerStatus *RepoIndexerStatus `xorm:"-"`
+ IsFsckEnabled bool `xorm:"NOT NULL DEFAULT true"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
@@ -2173,12 +2174,12 @@ func GitFsck() {
log.Trace("Doing: GitFsck")
if err := x.
- Where("id>0").BufferSize(setting.IterateBufferSize).
+ Where("id>0 AND is_fsck_enabled=?", true).BufferSize(setting.IterateBufferSize).
Iterate(new(Repository),
func(idx int, bean interface{}) error {
repo := bean.(*Repository)
repoPath := repo.RepoPath()
- log.Trace(fmt.Sprintf("Running health check for repository %s", repoPath))
+ log.Trace("Running health check on repository %s", repoPath)
if err := git.Fsck(repoPath, setting.Cron.RepoHealthCheck.Timeout, setting.Cron.RepoHealthCheck.Args...); err != nil {
desc := fmt.Sprintf("Failed to health check repository (%s): %v", repoPath, err)
log.Warn(desc)