#3091 add config option for Git GC
This commit is contained in:
parent
15b0cbe318
commit
b0b88d9bc5
4 changed files with 29 additions and 24 deletions
|
@ -357,6 +357,7 @@ MIGRATE = 600
|
|||
MIRROR = 300
|
||||
CLONE = 300
|
||||
PULL = 300
|
||||
GC = 60
|
||||
|
||||
[api]
|
||||
; Max number of items will response in a page
|
||||
|
|
|
@ -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
|
@ -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"`
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue