aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorUnknwon <joe2010xtmf@163.com>2015-01-02 13:30:45 +0800
committerUnknwon <joe2010xtmf@163.com>2015-01-02 13:30:45 +0800
commit0b56272c130c88fc4441fb1cba04657fe73efc38 (patch)
treebdd1f9e792fdc76383d3321eea232279a97fdc86 /models
parent677b1ec627fda8ca7c48b2423b371d012fd5c83c (diff)
downloadgitea-0b56272c130c88fc4441fb1cba04657fe73efc38.tar.gz
gitea-0b56272c130c88fc4441fb1cba04657fe73efc38.zip
fix #805
Diffstat (limited to 'models')
-rw-r--r--models/repo.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/models/repo.go b/models/repo.go
index 925f199483..77c4b140db 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -1186,6 +1186,8 @@ func MirrorUpdate() {
isMirrorUpdating = true
defer func() { isMirrorUpdating = false }()
+ mirrors := make([]*Mirror, 0, 10)
+
if err := x.Iterate(new(Mirror), func(idx int, bean interface{}) error {
m := bean.(*Mirror)
if m.NextUpdate.After(time.Now()) {
@@ -1196,13 +1198,25 @@ func MirrorUpdate() {
if _, stderr, err := process.ExecDir(10*time.Minute,
repoPath, fmt.Sprintf("MirrorUpdate: %s", repoPath),
"git", "remote", "update"); err != nil {
- return errors.New("git remote update: " + stderr)
+ desc := fmt.Sprintf("Fail to update mirror repository(%s): %s", repoPath, stderr)
+ log.Error(4, desc)
+ if err = CreateRepositoryNotice(desc); err != nil {
+ log.Error(4, "Fail to add notice: %v", err)
+ }
+ return nil
}
m.NextUpdate = time.Now().Add(time.Duration(m.Interval) * time.Hour)
- return UpdateMirror(m)
+ mirrors = append(mirrors, m)
+ return nil
}); err != nil {
- log.Error(4, "repo.MirrorUpdate: %v", err)
+ log.Error(4, "MirrorUpdate: %v", err)
+ }
+
+ for i := range mirrors {
+ if err := UpdateMirror(mirrors[i]); err != nil {
+ log.Error(4, "UpdateMirror", fmt.Sprintf("%s: %v", mirrors[i].RepoName, err))
+ }
}
}