#3091 add config option for Git GC

release/v1.15
Unknwon 2016-08-09 17:24:32 -07:00
parent 15b0cbe318
commit b0b88d9bc5
4 changed files with 29 additions and 24 deletions

View File

@ -357,6 +357,7 @@ MIGRATE = 600
MIRROR = 300
CLONE = 300
PULL = 300
GC = 60
[api]
; Max number of items will response in a page

View File

@ -1741,14 +1741,17 @@ func GitFsck() {
}
func GitGcRepos() error {
args := append([]string{"gc"}, setting.Git.GcArgs...)
args := append([]string{"gc"}, setting.Git.GCArgs...)
return x.Where("id > 0").Iterate(new(Repository),
func(idx int, bean interface{}) error {
repo := bean.(*Repository)
if err := repo.GetOwner(); err != nil {
return err
}
_, stderr, err := process.ExecDir(-1, RepoPath(repo.Owner.Name, repo.Name), "Repository garbage collection", "git", args...)
_, stderr, err := process.ExecDir(
time.Duration(setting.Git.Timeout.GC)*time.Second,
RepoPath(repo.Owner.Name, repo.Name), "Repository garbage collection",
"git", args...)
if err != nil {
return fmt.Errorf("%v: %v", err, stderr)
}

File diff suppressed because one or more lines are too long

View File

@ -198,12 +198,13 @@ var (
MaxGitDiffLines int
MaxGitDiffLineCharacters int
MaxGitDiffFiles int
GcArgs []string `delim:" "`
GCArgs []string `delim:" "`
Timeout struct {
Migrate int
Mirror int
Clone int
Pull int
GC int `ini:"GC"`
} `ini:"git.timeout"`
}