]> source.dussan.org Git - gitea.git/commitdiff
fix: if Mirrors repo no content is fetched, updated time should not b… (#3551)
authorBo-Yi Wu <appleboy.tw@gmail.com>
Fri, 23 Feb 2018 00:27:09 +0000 (08:27 +0800)
committerLunny Xiao <xiaolunwen@gmail.com>
Fri, 23 Feb 2018 00:27:09 +0000 (18:27 -0600)
* fix: if Mirrors repo no content is fetched, updated time should not be changed

* fix: sync update time from mirror repo.

* fix: one single session.

* update comment.

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
models/repo_mirror.go

index 197889e19ac690d43178f3566bd865e429d7a6e4..97fe2406c65ff2ca0cd1024e1b6614143b71db91 100644 (file)
@@ -244,6 +244,8 @@ func MirrorUpdate() {
 // SyncMirrors checks and syncs mirrors.
 // TODO: sync more mirrors at same time.
 func SyncMirrors() {
+       sess := x.NewSession()
+       defer sess.Close()
        // Start listening on new sync requests.
        for repoID := range MirrorQueue.Queue() {
                log.Trace("SyncMirrors [repo_id: %v]", repoID)
@@ -260,10 +262,22 @@ func SyncMirrors() {
                }
 
                m.ScheduleNextUpdate()
-               if err = UpdateMirror(m); err != nil {
+               if err = updateMirror(sess, m); err != nil {
                        log.Error(4, "UpdateMirror [%s]: %v", repoID, err)
                        continue
                }
+
+               // Get latest commit date and update to current repository updated time
+               commitDate, err := git.GetLatestCommitTime(m.Repo.RepoPath())
+               if err != nil {
+                       log.Error(2, "GetLatestCommitDate [%s]: %v", m.RepoID, err)
+                       continue
+               }
+
+               if _, err = sess.Exec("UPDATE repository SET updated_unix = ? WHERE id = ?", commitDate.Unix(), m.RepoID); err != nil {
+                       log.Error(2, "Update repository 'updated_unix' [%s]: %v", m.RepoID, err)
+                       continue
+               }
        }
 }